如何从 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 数组中删除特定元素?的主要内容,如果未能解决你的问题,请参考以下文章