从2D阵列删除阵列

时间:2018-09-09 00:50:03

标签: python python-3.x numpy

我有一个像这样的2D数组:

 [array([71, 35, 44,  0])
 array([56, 55,  0])
 array([32, 90, 11])
 array([ 0,  3, 81,  9, 20])
 array([0, 0]) array([0, 0]) array([0, 0]) array([ 5, 89])]

并且我要删除[0, 0]

我尝试

myarray = np.delete(myarray, np.where(myarray == [0, 0]), axis=0)

但它不起作用。

如何删除[0, 0]

2 个答案:

答案 0 :(得分:3)

np.array_equal使用列表理解:

>>> [i for i in arr if not np.array_equal(i, [0,0])]

[array([71, 35, 44,  0]),
 array([56, 55,  0]),
 array([32, 90, 11]),
 array([ 0,  3, 81,  9, 20]),
 array([ 5, 89])]

但是,最好不要使用锯齿状的numpy数组,因为numpy在此类数组中表现不佳。

答案 1 :(得分:1)

如果您有numpy数组要删除2d数组的第一行: 插入axis=0删除行,插入axis=1删除列

array2d=np.delete(array2d, 0, axis=0)