Numpy:np.delete未删除数组中的值

Numpy:np.delete未删除数组中的值,numpy,debugging,python-3.5,Numpy,Debugging,Python 3.5,我将Python3.5用于numpy版本1.11.3,我面临着一个非常奇怪的问题,可能很难重现 我从pd.DataFrame和np加载了一个Numpy数组arr1。delete似乎不起作用: ipdb> np.delete(arr1, 53) array([ 53, 84, 140, 220, 295, 413, 478, 558, 596, 875, 986, 1103, 1487, 1559, 1704, 1924, 2009, 2044, 230

我将Python
3.5
用于numpy版本
1.11.3
,我面临着一个非常奇怪的问题,可能很难重现

我从
pd.DataFrame
np加载了一个Numpy数组
arr1
。delete
似乎不起作用:

ipdb> np.delete(arr1, 53)
array([  53,   84,  140,  220,  295,  413,  478,  558,  596,  875,  986,
       1103, 1487, 1559, 1704, 1924, 2009, 2044, 2301, 2410, 2514, 2746,
       3432, 3443, 3466, 4054, 4125, 4249, 4309, 4395, 4429, 4544, 4764,
       4787, 5208, 5299, 5340, 5447, 5680, 5899, 5977, 6254, 6256, 6276,
       6412, 6518, 6538, 6584, 6587, 6591, 6592, 6593, 6594, 6661, 6662,
       6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673,
       6686, 6698, 6699, 6700, 6770, 6796, 6848, 6881, 6917, 6975, 7079,
       7121, 7188, 7402, 7510, 8200, 8217, 8479, 8569, 8759, 8925, 9152,
       9190, 9243, 9423, 9485, 9583, 9681, 9690, 9692, 9710, 9793, 9811])

ipdb> arr1.dtype
dtype('int64')

ipdb> np.delete(arr1, arr1)
array([  53,   84,  140,  220,  295,  413,  478,  558,  596,  875,  986,
       1103, 1487, 1559, 1704, 1924, 2009, 2044, 2301, 2410, 2514, 2746,
       3432, 3443, 3466, 4054, 4125, 4249, 4309, 4395, 4429, 4544, 4764,
       4787, 5208, 5299, 5340, 5447, 5680, 5899, 5977, 6254, 6256, 6276,
       6412, 6518, 6538, 6584, 6587, 6591, 6592, 6593, 6594, 6661, 6662,
       6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673,
       6686, 6698, 6699, 6700, 6770, 6796, 6848, 6881, 6917, 6975, 7079,
       7121, 7188, 7402, 7510, 8200, 8217, 8479, 8569, 8759, 8925, 9152,
       9190, 9243, 9423, 9485, 9583, 9681, 9690, 9692, 9710, 9793, 9811])
但是,当我在
np.arange
上调用
np.delete
时,它会工作:

ipdb> np.delete(np.arange(15), np.arange(13))
array([13, 14])
是否有可能发生这种情况的解释?

的第二个参数不是要删除的值。它是要删除的一个或多个索引。请看docstring中的示例,例如:

In [25]: arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])

In [26]: arr
Out[26]: 
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])

In [27]: np.delete(arr, 1, axis=0)
Out[27]: 
array([[ 1,  2,  3,  4],
       [ 9, 10, 11, 12]])
该函数调用中的值
1
,加上
axis=0
,表示“删除索引为1的行”