ホームページ  >  記事  >  バックエンド開発  >  ## NumPy 配列内の個別の値の頻度数を効率的に計算するにはどうすればよいですか?

## NumPy 配列内の個別の値の頻度数を効率的に計算するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 10:55:30314ブラウズ

## 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]]

ご覧のとおり、結果の配列には一意の値 (最初の列) とそれぞれの頻度 (2 番目の列) が含まれています。

比較とパフォーマンス:

return_counts=True を指定した np.unique メソッドは、scipy.stats.itemfreq などの他のアプローチと比較してパフォーマンスが向上します。次のベンチマーク比較で示されるように、大規模な配列の場合、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。