多个numpy.delete在数组上使用时出错?

时间:2016-08-04 00:02:03

标签: python arrays python-2.7 numpy

所以,我试图理解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)时,我就不能这样做了。它总是会删除一个术语。任何想法如何删除它?

1 个答案:

答案 0 :(得分:1)

第二个参数应该是您要删除的元素的索引,而不是元素本身。

a=np.delete(a,6)

在第一种情况下,它只能起作用,因为[5]碰巧等于5,所以索引和值是相同的。

当你有:

a=np.delete(a,[a[6]])

你要删除第7个元素,因为[6] = 7那里。