所以,我试图理解numpy.delete
函数,我想出了一些奇怪的东西。这是程序:
>>>import numpy as np
>>>a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 6, 7, 9])
>>> a[5]
5
>>> a=np.delete(a,[a[5]])
>>> a
array([0, 1, 2, 3, 4, 6, 7, 8, 9]) #so far so good
>>> a[6]
7
>>> a=np.delete(a,[a[6]])
>>> a
array([0, 1, 2, 3, 4, 6, 7, 9])
所以...当我放a=np.delete(a,[a[6]])
时,应该从数组中删除数字7
,对吧?为什么数字8
(数组中的术语a[7]
)被移除而不是预期的a[6]
?
我还注意到,当我尝试在第一次删除后从数组中删除a[0]
(= 0)时,我就不能这样做了。它总是会删除一个术语。任何想法如何删除它?
答案 0 :(得分:1)
第二个参数应该是您要删除的元素的索引,而不是元素本身。
a=np.delete(a,6)
在第一种情况下,它只能起作用,因为[5]碰巧等于5,所以索引和值是相同的。
当你有:
a=np.delete(a,[a[6]])
你要删除第7个元素,因为[6] = 7那里。