如何从numpy ndarray中删除特定值

nis*_*ish 3 python numpy

我有一个numpy ndarray,看起来像:

[[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[225 224 228],
[163 164 174],
[205 212 229],
[116 130 153],
[ 81 101 132],
[ 34  56  92],
[  2  16  35],
[ 33  44  64],
[ 38  49  71],
[ 63  75  99],
[ 76  88 116],
[ 45  62  95],
[ 29  50  88],
[ 18  40  82],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0],
[  0   0   0]]
Run Code Online (Sandbox Code Playgroud)

我想删除所有零元素,即[0,0,0].我怎样才能做到这一点?

Zda*_*daR 5

您可以使用np.delete()np.where()获取满足条件的元素:

del_arr = np.delete(arr, np.where(arr == [0, 0, 0]), axis=0)
print del_arr
Run Code Online (Sandbox Code Playgroud)