如何在ndarray中计算特定元素的行数/列数?

时间:2019-10-22 22:07:04

标签: python python-3.x numpy numpy-ndarray

我有一个numpy数组:

[0, 0, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 1]

在每行(或每一列)中是否有任何numpy函数可以计数(比如0)(或其他任何元素)?例如

[4]
[3]
[4]

2 个答案:

答案 0 :(得分:1)

在布尔掩码数组上使用sum

(arr == number).sum(1)

>>> (arr == 0).sum(1)
array([4, 4, 4])

>>> (arr == 1).sum(1)
array([2, 2, 2])

总是可以在最后重塑

>>> (arr == 0).sum(1).reshape(-1,1)
array([[4],
       [4],
       [4]])

答案 1 :(得分:0)

通过执行比较A == 0,numpy返回一个布尔数组,然后可以对其求和,因为它们分别被TrueFalse解释为1和0:

>>> A = np.array([
...     [0, 1, 0, 1, 0, 1],
...     [1, 0, 0, 0, 0, 1],
...     [1, 0, 0, 0, 0, 0],
... ])
>>> np.sum(A == 0, axis=0)
array([1, 2, 3, 2, 3, 1])
>>> np.sum(A == 0, axis=1)
array([3, 4, 5])