如何从 numpy nd 数组中删除特定元素?

Posted

技术标签:

【中文标题】如何从 numpy nd 数组中删除特定元素?【英文标题】:How to delete a specific element from a numpy nd array? 【发布时间】: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 参数?还是您在未阅读其文档的情况下使用了该功能:( 【参考方案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 任务或问题。 “不同的维度”并不能告诉我们太多。

以上是关于如何从 numpy nd 数组中删除特定元素?的主要内容,如果未能解决你的问题,请参考以下文章

从 numpy 数组中删除一个元素

如何从 NumPy 数组中删除所有零元素?

PHP:如何从数组中删除特定元素?

Numpy - 从一维数组中删除最后一个元素的最佳方法?

如何使用python从数组中删除特定元素

如何从结构类型数组的列中删除特定元素