計算 numpy 陣列中的出現次數

計算 numpy 陣列中值的出現次數。這將有效:

>>> import numpy as np
>>> a=np.array([0,3,4,3,5,4,7])
>>> print np.sum(a==3)
2

邏輯是布林語句產生一個陣列,其中所請求值的所有出現都是 1 而其他所有出現的都是零。因此,總結這些給出了發生的數量。這適用於任何形狀或 dtype 的陣列。

我用兩種方法來計算 numpy 中所有唯一值的出現次數。獨特和 bincount。唯一自動展平多維陣列,而 bincount 僅適用於僅包含正整數的 1d 陣列。

>>> unique,counts=np.unique(a,return_counts=True)
>>> print unique,counts # counts[i] is equal to occurrences of unique[i] in a
[0 3 4 5 7] [1 2 2 1 1]
>>> bin_count=np.bincount(a)
>>> print bin_count # bin_count[i] is equal to occurrences of i in a
[1 0 0 2 2 1 0 1] 

如果你的資料是 numpy 陣列,那麼使用 numpy 方法然後將資料轉換為泛型方法通常要快得多。