numpy------bincount()通俗易懂

bincount的用途很簡單,就是統計出一個列表的各個元素的出現次數。

例如輸入是:[1,0,2,2,1,2,3,5]

那麼輸出就是:[1,2,3,1,0,1]

這樣的結果可能並不是很直觀,可能依然會有同學會問爲什麼會輸出這樣的結果。

我們看看:假如我們把輸入的列表中的數字都統計一遍,形成一個字典:

key是列表的數字,value是數字對應出現的次數:

{
  0:1,
  1:2,
  2:3,
  3:1,
  4:0,
  5:1
}

所以這就很直觀啦,但是又有同學要問了,輸入明明沒有4啊,爲什麼也要統計4呢?因爲這就是bincount的特性,例如如果一個列表中最大的數字是5的話,那麼輸出的列表就有6個(5+1)元素,因爲要統計0~5數字的出現頻率。

說白了 bincount就是統計列表中數字對應的出現頻率的。

 

那有什麼用呢?

對於我而言,我一般用來看一個矩陣中的值是否符合我的預期。如果一個矩陣太大,是打印不出來的,調試時看也很不方便,於是,用bincount就可以輸出,矩陣中的數字的出現頻率,進而知道矩陣中的值的取值範圍是不是符合我的預期。當然,二維三維的輸入數據要做一個reshape處理,把它轉成一維向量,如:

import numpy as np
img = cv2.imread(path)
print(np.bincount(img.reshape(-1)))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章