Python—numpy.bincount()


1、它大致說bin的數量比x中的最大值大1,每個bin給出了它的索引值在x中出現的次數。下面,我舉個例子讓大家更好的理解一下:

# 我們可以看到x中最大的數為7,因此bin的數量為8,那么它的索引值為0->7
x = np.array([0, 1, 1, 3, 2, 1, 7])
# 索引0出現了1次,索引1出現了3次......索引5出現了0次......
np.bincount(x)
#因此,輸出結果為:array([1, 3, 1, 1, 0, 0, 0, 1])

# 我們可以看到x中最大的數為7,因此bin的數量為8,那么它的索引值為0->7
x = np.array([7, 6, 2, 1, 4])
# 索引0出現了0次,索引1出現了1次......索引5出現了0次......
np.bincount(x)
#輸出結果為:array([0, 1, 1, 0, 1, 0, 1, 1])

2、下面,我來解釋一下weights這個參數。文檔說,如果weights參數被指定,那么x會被它加權,也就是說,如果值n發現在位置i,那么out[n] += weight[i]而不是out[n] += 1.因此,我們weights的大小必須與x相同,否則報錯。下面,我舉個例子讓大家更好的理解一下:

w = np.array([0.3, 0.5, 0.2, 0.7, 1., -0.6])
# 我們可以看到x中最大的數為4,因此bin的數量為5,那么它的索引值為0->4
x = np.array([2, 1, 3, 4, 4, 3])
# 索引0 -> 0
# 索引1 -> w[1] = 0.5
# 索引2 -> w[0] = 0.3
# 索引3 -> w[2] + w[5] = 0.2 - 0.6 = -0.4
# 索引4 -> w[3] + w[4] = 0.7 + 1 = 1.7
np.bincount(x,  weights=w)
# 因此,輸出結果為:array([ 0. ,  0.5,  0.3, -0.4,  1.7])

3、最后,我們來看一下minlength這個參數。文檔說,如果minlength被指定,那么輸出數組中bin的數量至少為它指定的數(如果必要的話,bin的數量會更大,這取決於x)。下面,我舉個例子讓大家更好的理解一下:

# 我們可以看到x中最大的數為3,因此bin的數量為4,那么它的索引值為0->3
x = np.array([3, 2, 1, 3, 1])
# 本來bin的數量為4,現在我們指定了參數為7,因此現在bin的數量為7,所以現在它的索引值為0->6
np.bincount(x, minlength=7)
# 因此,輸出結果為:array([0, 2, 1, 2, 0, 0, 0])

# 我們可以看到x中最大的數為3,因此bin的數量為4,那么它的索引值為0->3
x = np.array([3, 2, 1, 3, 1])
# 本來bin的數量為4,現在我們指定了參數為1,那么它指定的數量小於原本的數量,因此這個參數失去了作用,索引值還是0->3
np.bincount(x, minlength=1)
# 因此,輸出結果為:array([0, 2, 1, 2])

 轉自 https://blog.csdn.net/xlinsist/article/details/51346523


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM