【问题标题】:How to delete a specific element from a numpy nd array?如何从 numpy nd 数组中删除特定元素?
【发布时间】:2022-01-21 13:15:48
【问题描述】:

我正在研究尺寸可以变化的 nd 数组。 我想从给定索引的数组中删除特定元素。 喜欢

x = [[1,2,3],[4,5,6]]
index = (0,0)

我希望得到结果

modx = [[2,3],[4,5,6]]

我试过 numpy.delete() 但这会使数组变平。

【问题讨论】:

  • modx 不是有效的np.array
  • 您在使用np.delete 时是否提供了axis 参数?还是您在未阅读其文档的情况下使用了该功能:(

标签: python numpy multidimensional-array numpy-ndarray


【解决方案1】:

numpy.array删除 元素并不是一个好的做法。 正如@Michael Szczesny 指出的那样,您想要的解决方案不是有效的numpy.array

即使您以一种有效的方式删除元素,numpy.array 的速度和内存使用率的提高也不能证明调整数组大小的额外开销是合理的,尤其是在您需要经常删除元素的情况下。

相反,请尝试将值设置为在您的用例中被视为无效的值。例如,9x9 数独网格中的空单元格可以通过将它们设置为 0-1 来表示。它更快更高效。

【讨论】:

    【解决方案2】:
    x = [[1,2,3],[4,5,6]]
    index = (0,0)
    x[index[0]].pop(index[1])
    x  # this will return [[2,3],[4,5,6]]
    

    这行得通吗?

    【讨论】:

    • 不,因为我必须将这种方法推广到不同维度的数组。
    • Allwin,您提供了一个列表示例 - 输入和结果。这不是有效的 numpy 任务或问题。 “不同的维度”并不能告诉我们太多。
    猜你喜欢
    • 2012-06-15
    • 2019-11-15
    • 2019-07-16
    • 2019-11-28
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多