我有一个numpy ndarray,看起来像:
SocketChannels
我想删除所有零元素,即[[ 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]]
。我怎么能这样做?
答案 0 :(得分:5)
您可以使用np.delete()
和np.where()
来获取符合条件的元素:
del_arr = np.delete(arr, np.where(arr == [0, 0, 0]), axis=0)
print del_arr
答案 1 :(得分:0)
试试这个:
import numpy as np
array = np.array([ 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])
zeros = np.all(np.equal(a, 0), axis=1)
array[~zeros]
答案 2 :(得分:0)
data[(data[:,1] & data[:, 2] & data[:, 0]).astype(bool)]