删除numpy数组的第一列



我有以下np.array():

[[55.3  1.   2.   2.   2.   2. ]
[55.5  1.   2.   0.   2.   2. ]
[54.9  2.   2.   2.   2.   2. ]
[47.9  2.   2.   2.   0.   0. ]
[57.   1.   2.   2.   0.   2. ]
[56.6  1.   2.   2.   2.   2. ]
[54.7  1.   2.   2.   2.   nan]
[51.4  2.   2.   2.   2.   2. ]
[55.3  2.   2.   2.   2.   nan]]

我想得到以下一个:

[[1.   2.   2.   2.   2. ]
[1.   2.   0.   2.   2. ]
[2.   2.   2.   2.   2. ]
[2.   2.   2.   0.   0. ]
[1.   2.   2.   0.   2. ]
[1.   2.   2.   2.   2. ]
[1.   2.   2.   2.   nan]
[2.   2.   2.   2.   2. ]
[2.   2.   2.   2.   nan]]

我确实尝试过:

MyArray[1:]#But this delete the first line
np.delete(MyArray, 0, 1) #Where I don't understand the output
[[ 2.  2.  2.  2.  2.]
[ 1.  2.  2.  2.  2.]
[ 1.  2.  0.  2.  2.]
[ 2.  2.  2.  2.  2.]
[ 2.  2.  2.  0.  0.]
[ 1.  2.  2.  0.  2.]
[ 1.  2.  2.  2.  2.]
[ 1.  2.  2.  2. nan]
[ 2.  2.  2.  2.  2.]
[ 2.  2.  2.  2. nan]]

您在使用np.delete时犯了一个错误,np.delete参数是数组、要删除的索引列表、轴。通过使用下面的代码片段,您可以获得所需的输出。arr=np.delete(arr,[0],1(您创建的问题是,您传递的是整数而不是列表,这就是为什么它没有给出正确的输出。

您可以尝试:new_array = [i[1:] for i in MyArray]

尝试MyArray[:,1:]我想你可以用这个去掉第0列

应该直接使用

new_array = MyArray[:, 1:]

有关说明和示例,请参阅此链接。或者这个链接

最新更新