找出 NumPy 陣列中各個值的出現頻率是資料分析中常見的任務。本文概述了獲取這些頻率計數的有效方法。
方法:
NumPy 中取得頻率計數的主要方法是透過 np.unique 函數,具體來說透過設定 return_counts=True 。例如,考慮以下數組:
<code class="python">x = np.array([1,1,1,2,2,2,5,25,1,1])</code>
要計算這些元素的頻率計數:
<code class="python">import numpy as np unique, counts = np.unique(x, return_counts=True) print(np.asarray((unique, counts)).T)</code>
這將輸出:
[[ 1 5] [ 2 3] [ 5 1] [25 1]]
如您所願可以看到,結果數組包含唯一值(在第一列)及其各自的頻率(在第二列)。
比較和性能:
與其他方法(例如scipy.stats.itemfreq)相比,帶有return_counts=True 的np.unique 方法提供了更高的性能。對於大型數組,np.unique 所花費的時間顯著減少,如以下基準比較所示:
<code class="python">x = np.random.random_integers(0,100,1e6) %timeit unique, counts = np.unique(x, return_counts=True) # 31.5 ms per loop %timeit scipy.stats.itemfreq(x) # 170 ms per loop</code>
結論:
np.unique NumPy 中的函數提供了一種獲取數組中唯一值的頻率計數的有效解決方案。與其他方法相比,它的效能優勢使其成為大型資料集的首選。
以上是## 如何有效計算 NumPy 陣列中不同值的頻率計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!