我有一个numpy数组:
[0, 0, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 1]
在每行(或每一列)中是否有任何numpy函数可以计数(比如0)(或其他任何元素)?例如
[4]
[3]
[4]
答案 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返回一个布尔数组,然后可以对其求和,因为它们分别被True
和False
解释为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])