この記事では、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