NumPy配列で最も頻繁に出現する数値を見つける 質問する

NumPy配列で最も頻繁に出現する数値を見つける 質問する

次のような NumPy 配列があるとします。

a = np.array([1,2,3,1,2,1,1,1,3,2,2,1])

この配列で最も頻繁に出現する数字を見つけるにはどうすればよいでしょうか?

ベストアンサー1

リストにすべて非負の整数が含まれている場合は、numpy.bincounts を確認する必要があります。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.bincount.html

そしておそらくnp.argmaxを使用します:

a = np.array([1,2,3,1,2,1,1,1,3,2,2,1])
counts = np.bincount(a)
print(np.argmax(counts))

より複雑なリスト(負の数や整数以外の値を含むもの)の場合は、次のようにします。np.histogram同様の方法で。あるいは、numpy を使用せずに Python で作業したいだけの場合は、collections.Counterこの種のデータを処理するのに適した方法です。

from collections import Counter
a = [1,2,3,1,2,1,1,1,3,2,2,1]
b = Counter(a)
print(b.most_common(1))

おすすめ記事