繁体   English   中英

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

[英]numpy: find the count of each unique element in an array

我有一个包含许多重复元素的数组,我想找到重复次数最多的非零元素的计数和值。 我有某种工作,但我不确定这是否是在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."

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM