Python 如何在ndarray中按行/列计算特定元素?
我有一个numpy阵列:Python 如何在ndarray中按行/列计算特定元素?,python,python-3.x,numpy,numpy-ndarray,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(或任何其他元素)?e、 g 对布尔屏蔽数组使用sum (arr == number).sum(1) 始终可以在最后重塑形状 >>> (arr == 0).sum(1).reshape(-1,1) array([[4], [4], [4]]) 通过执行比
[0, 0, 0, 1, 0, 1]
[1, 0, 0, 0, 0, 1]
[1, 0, 0, 0, 0, 1]
是否有任何numpy函数可以计算每行(或每列)中的0(或任何其他元素)?e、 g
对布尔屏蔽数组使用
sum
(arr == number).sum(1)
始终可以在最后重塑形状
>>> (arr == 0).sum(1).reshape(-1,1)
array([[4],
[4],
[4]])
通过执行比较
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,轴=0)
数组([1,2,3,2,3,1])
>>>np.sum(A==0,轴=1)
数组([3,4,5])
您也可以使用keepdims=1
代替重塑,为什么不使用count\u nonzero
?呃。。。因为我自己从来没有真正使用过它P我稍后会更新答案以包含它,谢谢你的建议
>>> (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]])