python - numpy:查找数组中每个唯一元素的计数

标签 python search numpy

我有一个包含许多重复元素的数组,我想找到重复次数最多的非零元素的计数和值。我有点让它工作,但我不确定这是否是在 python 中执行此操作的正确方法。

部分测试代码:

import numpy as np

x = np.array([0, 0, 0, 10, 10, 10, 10, 10])

l = list()
for i in np.unique(x):
    l.extend((np.count_nonzero(x[x==i]),))

maximum_times = np.max(l)

这告诉我最大元素重复的次数,但它没有告诉我那个元素是什么,也许使用 for 循环不是一个好主意,但我想不出任何其他 pythonic 解决方案。

最佳答案

正如 Ashwini 指出的那样,您可以为此使用 return_counts=True

x = np.array([0, 0, 0, 10, 10, 10, 10, 10])

elements, repeats = np.unique(x, return_counts=True)
index = repeats.argmax()
elem = elements[index]

print "Max elem is " + str(elem) + " with " + str(repeats[index]) + " repetitions."

关于python - numpy:查找数组中每个唯一元素的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858227/

相关文章:

Python 多维数组作为单个列表

Python 不打开日文文件名

sqlite - Android SQLite Like 查询

php - 比较单词,还需要找复数和ing?

php、mysql搜索网站

python - 如何从其索引和两个变量函数创建一个 pandas DataFrame?

python - 可编程透明转发代理

python - 相当于 Pandas 的numpy

python-3.x - 将图像放在另一个图像之上的更有效方法 - OpenCV Python3

python - 从 NetCDF 文件读取值并将其写入 csv 文件