「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > NumPy 配列内の一意の値を効率的にカウントするにはどうすればよいですか?

NumPy 配列内の一意の値を効率的にカウントするにはどうすればよいですか?

2024 年 11 月 11 日に公開
ブラウズ:835

How to Efficiently Count Unique Values in a NumPy Array?

NumPy 配列内の一意の値の頻度数を効率的に決定する

この記事では、NumPy 配列内の一意の値の頻度数を計算する効率的な方法について説明します。

return_counts=True で numpy.unique を使用すると (NumPy バージョン 1.9 以降)、一意の値とそれに対応するカウントの両方を効率的に計算できます。例:

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)

print(np.asarray((unique, counts)).T)

このアプローチは、パフォーマンス ベンチマークで実証されているように、実行速度の点で scipy.stats.itemfreq 関数よりも大幅に優れています。

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
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3