python - 查找 NumPy 数组中出现频率最高的数字

标签 python numpy

假设我有以下 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/

相关文章:

python - 将 numpy memmap 刷新到 npy 文件

python - 如何根据 Pandas 中的列填充缺失值?

python - numpy中的多维累积和

python - Azure Cosmos DB,删除 IDS(肯定存在)

python - 将 cookie jar 分配给 QWebView 时出现段错误

python - 使用云功能从谷歌云存储桶中读取最新文件

python - 根据字符串中定义的条件填充新列

Python Pandas 和 NumPy.where 行数不匹配的行为

python - 在中间件中导入 HttpResponseRedirect

python - 多核 Python : multiprocessing Vs. zeroMQ?