Miscs

numpyで最頻値を求める

概要

numpyで最頻値を求める方法です。

方法

np.unique()を使います。

import numpy as np

arr = np.array([0, 1, 2, 3, 4, 1, 2, 2, 2, 2, 2, 3, 4])

unique, freq = np.unique(arr, return_counts=True) #return_counts=Trueが肝
mode = unique[np.argmax(freq)] #freqの最も頻度が多い引数を取得して、uniqueから引っ張ってくる

print(unique)
"""
[0 1 2 3 4]
"""

print(freq)
"""
[1 2 6 2 2]
"""

print(mode)
"""
2
"""