numpy bincount 通俗易懂

2021-10-07 15:37:55 字數 690 閱讀 9413

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

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

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

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

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

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

所以這就很直觀啦,但是又有同學要問了,輸入明明沒有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)))

svm通俗講解 SVM通俗講解

svm support vector machine 支援向量機相關理論介紹 基於資料的機器學習是現代智慧型技術中的重要方面,研究從觀測資料 樣本 出發尋找規律,利用這些規律對未來資料或無法觀測的資料進行 迄今為止,關於機器學習還沒有一種被共同接受的理論框架,關於其實現方法 大致可以分為 三種 3 ...

epoll通俗講解

首先我們來定義流的概念,乙個流可以是檔案,socket,pipe等等可以進行i o操作的核心物件。不管是檔案,還是套接字,還是管道,我們都可以把他們看作流。之後我們來討論i o的操作,通過read,我們可以從流中讀入資料 通過write,我們可以往流寫入資料。現在假定乙個情形,我們需要從流中讀資料,...

編碼通俗解釋

很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...