假设我有以下 NumPy 数组:
a = np.array([1,2,3,1,2,1,1,1,3,2,2,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
以类似的方式。或者,如果您只想在 python 中工作而不使用 numpy,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))
关于python - 查找 NumPy 数组中出现频率最高的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252280/