首頁  >  文章  >  後端開發  >  ## 如何有效計算 NumPy 陣列中不同值的頻率計數?

## 如何有效計算 NumPy 陣列中不同值的頻率計數?

Susan Sarandon
Susan Sarandon原創
2024-10-27 10:55:30237瀏覽

## How to Efficiently Calculate Frequency Counts for Distinct Values in NumPy Arrays?

計算 NumPy 陣列中不同值的頻率計數

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

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