一、什麼是bincount
bincount是numpy中的一個函數,可以用於計算一個數組中各元素出現的次數。
import numpy as np
a = np.array([0, 1, 1, 3, 2, 1, 7])
print(np.bincount(a))
結果為:[1, 3, 1, 1, 0, 0, 0, 1]。因為0出現了1次,1出現了3次,2出現了1次,3出現了1次,7出現了1次,故而得到這個結果。
二、如何使用bincount計算元素出現次數
通常,我們會使用集合、字典等數據結構來統計元素出現次數,但是這些方法通常只適用於離散的、不重複的元素。如果需要對一個數組中所有元素都進行統計,則會比較麻煩。這時,我們就可以使用bincount函數了。
例如,我們可以使用以下代碼統計一個數組中每個元素出現的次數:
import numpy as np
a = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
counts = np.bincount(a)
print(counts)
結果為:[0 1 2 3 4]。這是由於1出現了1次,2出現了2次,3出現了3次,4出現了4次的結果。
三、如何使用bincount計算元素出現頻率
如果需要計算每個元素在數組中出現的頻率,可以使用bincount函數,再用頻率總數除以每個元素的出現次數。
import numpy as np
a = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
counts = np.bincount(a)
freqs = counts / len(a)
print(freqs)
結果為:[0.0 0.1 0.2 0.3 0.4]。
四、如何使用bincount計算多維數組中元素出現次數
使用bincount函數可以計算一維數組中元素出現的次數,但要計算多維數組中每個元素出現的次數,需要將多維數組展成一維數組。
import numpy as np
a = np.array([[0, 1, 2], [1, 3, 4], [2, 4, 5]])
a_flat = a.flatten()
counts = np.bincount(a_flat)
print(counts)
首先將數組a展平成一維數組a_flat,再使用bincount函數計算每個元素出現的次數。
結果為:[1 2 2 1 2 1]。這是因為0出現了1次,1出現了2次,2出現了2次,3出現了1次,4出現了2次,5出現了1次。
五、如何使用bincount計算多維數組中元素出現頻率
計算多維數組中元素出現的頻率,只需要和計算一維數組中元素出現頻率的方式一樣,將總數除以每個元素的出現次數即可。
import numpy as np
a = np.array([[0, 1, 2], [1, 3, 4], [2, 4, 5]])
a_flat = a.flatten()
counts = np.bincount(a_flat)
freqs = counts / len(a_flat)
print(freqs)
展開多維數組,並計算出每個元素出現的次數。最後,將其總數除以每個元素的出現次數,即可得到每個元素的出現頻率。
結果為:[0.16666667 0.33333333 0.33333333 0.08333333 0.33333333 0.08333333]。
六、結論
Python的numpy庫提供了bincount函數,可以快速方便地計算數組中元素的出現次數和出現頻率。使用bincount函數可以避免使用循環等方式將數組中的元素統計一遍,從而節省了計算機的計算資源,提高了程序的運行效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150973.html