在Python和numpy中,如何删除具有特定条件的数组行
假设我有一个数组:在Python和numpy中,如何删除具有特定条件的数组行,python,arrays,numpy,Python,Arrays,Numpy,假设我有一个数组: 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,
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]])
从数组中删除元素为0的行的最简单方法是什么
我找到的最接近的答案似乎是:最简单?也许吧
>>> 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]])
它使所有行(元素为零的行除外)保持为零。这不一定是最快的,但如果这是代码中的瓶颈,我会非常惊讶,而且花在优化上的时间比节省下来的时间要多 最简单?也许吧
>>> 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]])
它使所有行(元素为零的行除外)保持为零。这不一定是最快的,但如果这是代码中的瓶颈,我会非常惊讶,而且花在优化上的时间比节省下来的时间要多