首頁  >  文章  >  後端開發  >  如何有效計算 NumPy 數組中唯一值的頻率?

如何有效計算 NumPy 數組中唯一值的頻率?

Patricia Arquette
Patricia Arquette原創
2024-10-28 07:03:30991瀏覽

How can I efficiently count the frequency of unique values in a NumPy array?

取得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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn