说我是否有数组:
b=np.arange(10,40).reshape(10,3)
b[3,0]=b[6,1]=b[7,2]=0
array([[10, 11, 12],
[13, 14, 15],
[16, 17, 18],
[ 0, 20, 21],
[22, 23, 24],
[25, 26, 27],
[28, 0, 30],
[31, 32, 0],
[34, 35, 36],
[37, 38, 39]])
从数组中删除具有任何element = 0的行的最简单方法是什么?
我找到的最接近的答案似乎是:Removing rows in NumPy efficiently
答案 0 :(得分:4)
最简单的?也许
>>> b = b[~(b == 0).any(axis=1)]
>>> b
array([[10, 11, 12],
[13, 14, 15],
[16, 17, 18],
[22, 23, 24],
[25, 26, 27],
[34, 35, 36],
[37, 38, 39]])
保留除了具有任何元素等于零的行之外的所有行。这不一定是最快的,但如果这是你的代码中的瓶颈,我会非常惊讶,并且花费更多的时间来优化比你保存的更容易。