【Numpy學習】np.count_nonzero()用法解析

一窮二白到年薪百萬發表於2020-11-19

  前言
  在機器學習或者深度學習中經常需要統計矩陣(也可看做多維陣列)中行列不為0元素的個數,這時就需要用到numpy中的np.count_nonzero()函式。
  作用
  np.count_nonzero()是用於統計矩陣中非零元素的個數
  用法
   np.count_nonzero(a, axis=None, *, keepdims=False),引數a: 為需要統計陣列名;axis: 為統計的軸,當axis=0時統計陣列y軸(每列)非零元素個數,當axis=1時統計陣列每x軸(每行) 非零元素個數, 另外,axis可以為元組。為元組時統計的是多維矩陣的行列。keepdims用法暫時不清楚。
  案例

a = np.array([[0, 1, 7, 0],
              [3, 0, 2, 19]])
np.count_nonzero(a)
5
np.count_nonzero(a, axis=0)
array([1, 1, 2, 1])
np.count_nonzero(a, axis=1)
array([2, 3])
----------------------------
d = np.array([[[1,2,1],[0,1,2],[0,2,3],[0,2,3]],[[1,2,1],[0,1,2],[0,2,3],[0,2,3]]])
print(d)
'''
[[[1 2 1]
  [0 1 2]
  [0 2 3]
  [0 2 3]]

 [[1 2 1]
  [0 1 2]
  [0 2 3]
  [0 2 3]]]
'''
print(np.count_nonzero(d,axis=0)) 
'''
[[2 2 2]
 [0 2 2]
 [0 2 2]
 [0 2 2]]
'''
print(np.count_nonzero(d,axis=1))
'''
[[1 4 4]
 [1 4 4]]
'''
print(np.count_nonzero(d,axis=(0,1))) #[2 8 8]
print(np.count_nonzero(d,axis=(0,1,2))) #18

  參考文獻
1、numpy.count_nonzero()用法詳解
2、官網連結

相關文章