如何从 python 中的 numpy 二维矩阵中删除行?

How to delete rows from a numpy 2D matrix in python?

我正在尝试删除均值为 0 的行。我试过这个:

import numpy as np

a = np.zeros((4,4))

for i in range(len(a)):

    if (i%2)==0 : a[i]= np.arange(4*i,4*(i+1))

    array([[  0.,   1.,   2.,   3.],
           [  0.,   0.,   0.,   0.],
           [  8.,   9.,  10.,  11.],
           [  0.,   0.,   0.,   0.]])        

np.ma.MaskedArray(a, mask=(np.mean(a,0)==0))
np.ma.compress_rows(a)

我想得到这个:

a =([[  0.,   1.,   2.,   3.],
     [  8.,   9.,  10.,  11.]])

使用索引和条件

In [187]: a[~(a.mean(axis=1)==0)]
Out[187]:
array([[  0.,   1.,   2.,   3.],
       [  8.,   9.,  10.,  11.]])