取得NumPy 陣列中唯一值的頻率計數
要有效決定NumPy 陣列中每個唯一值的頻率,請考慮利用NumPy的unique 函數與return_counts=True 結合使用。
<code class="python">import numpy as np x = np.array([1,1,1,2,2,2,5,25,1,1]) unique, counts = np.unique(x, return_counts=True)</code>
這個方法會產生一個包含兩個陣列的元組:unique,它保存原始陣列中存在的唯一值,counts,它指示各自的頻率每個唯一值出現的次數。
例如,使用給定的輸入陣列執行上述程式碼將回傳:
[(1, 5), (2, 3), (5, 1), (25, 1)]
表示值 1 出現 5 次,2 出現 3 次,5出現一次,25 出現一次。
對於大型資料集,使用 unique(return_counts=True) 比 SciPy 的 scipy.stats.itemfreq 函數具有顯著的效能優勢,如下面的程式碼片段所示:
<code class="python">In [4]: x = np.random.random_integers(0,100,1e6) In [5]: %timeit unique, counts = np.unique(x, return_counts=True) 10 loops, best of 3: 31.5 ms per loop In [6]: %timeit scipy.stats.itemfreq(x) 10 loops, best of 3: 170 ms per loop</code>
以上是如何有效計算 NumPy 數組中唯一值的頻率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!