gpt4 book ai didi

python - 获取数组中元素的频率计数

转载 作者:太空狗 更新时间:2023-10-30 01:42:12 24 4
gpt4 key购买 nike

您好,我有一个值列表。我想获得另一个列表,其中包含该列表中每个值出现的次数。这相当简单,但我还需要将原始列表中不存在的值出现在频率列表中,但随后的值为 0。例如:

I = [0,1,1,2,2,2,4,4,5,5,6,6,6,8,8,8]

你的期望:

freqI = [1,2,3,2,2,2,3,3]

我需要什么:

freqI = [1,2,3,0,2,2,3,0,3]

如您所见,I 中不存在 3 和 7,尽管它们仍包含在频率列表中。

我最初的尝试最终给出了第一种解决方案(具有中间值):

d = {x:I.count(x) for x in I}

sorted_x = sorted(d.iteritems(), key=operator.itemgetter(0))

如何获得我的数组的频率计数(又名直方图),其中存在中间值?

最佳答案

>>> lis = [0,1,1,2,2,2,4,4,5,5,6,6,6,8,8,8]
>>> maxx,minn = max(lis),min(lis)
>>> from collections import Counter
>>> c = Counter(lis)
>>> [c[i] for i in xrange(minn,maxx+1)]
[1, 2, 3, 0, 2, 2, 3, 0, 3]

或者按照@DSM 的建议,我们可以从 dict 本身获取 minmax:

>>> [c[i] for i in xrange( min(c) , max(c)+1)]
[1, 2, 3, 0, 2, 2, 3, 0, 3]

关于python - 获取数组中元素的频率计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com