在2D numpy数组中计算零行

时间:2018-03-16 23:12:54

标签: python numpy

如何计算numpy数组的零行数?

array = np.asarray([[1,1],[0,0],[1,1],[0,0],[0,0]])

- >有三行全为零,因此应该给3

我花了一些时间来弄清楚这一个,也找不到SO的答案

3 个答案:

答案 0 :(得分:4)

你也可以利用"真实性"数组中的非零值

ggplot2

,即对所有行中没有值为真的行进行求和(因此全部为零)

答案 1 :(得分:1)

如果您确定这些行全部为零,则可以使用np.all

 # number of rows which has non-zero elements
In [33]: sum(np.all(arr, axis=1))
Out[33]: 2

# invert the mask to get number of rows which has all zero as its elements
In [34]: sum(~np.all(arr, axis=1))
Out[34]: 3

答案 2 :(得分:0)

import numpy as np

array = np.array([[1,1],[0,0],[1,1],[0,0],[0,0]])

non_zero_rows = np.count_nonzero((array != 0).sum(1))   # gives 2
zero_rows = len(array) - non_zero_rows                  # gives 3

有更好的解决方案吗?