pycharm 如何计算一个值在数组中出现的次数,以及出现的不同值是什么?

w8f9ii69  于 2022-11-08  发布在  PyCharm
关注(0)|答案(4)|浏览(209)

我正在使用最新版本的python和pycharm专业版。我正在试图弄清楚如何取一个像[15,15,15,4,4,4,4,4]这样的数组并输出[3,15,6,4],其中一个数字表示某个值在数组中出现的次数,另一个数字表示该值的内容。在我提供的示例中,有15个出现3次,4个出现6次,因此输出为[3,15,6,4]。我已经有了一个计算数组中唯一元素数量的方法(在这个例子中,它应该是2)但是我不确定我将如何存储值是什么以及它出现了多少次。任何帮助都将不胜感激。

wh6knrhe

wh6knrhe1#

很简单,您只需将数组列表转换为set,然后使用count方法即可。

lst=[15, 15, 15, 4, 4, 4, 4, 4, 4]

out=[[lst.count(i),i] for i in set(lst)]

print(out)

输出

[[6, 4], [3, 15]]
hfyxw5xn

hfyxw5xn2#

这是一个很好的字典例子。关键字是你的数字,值是计数。浏览你的列表。如果你能计数列表中有多少不同的数字,你必须有那个代码。
测试字典中是否存在该数字。如果存在,则递增计数。如果不存在,则为添加的新键存储1。

qnakjoqk

qnakjoqk3#

我不确定内置的方法,但这样做的算法看起来像

counts = {}

for i in range(len(my_array)):
    if my_array[i] in counts.keys():
        counts[my_array[i]] = 1
    else:
        counts[my_array[i]] += 1
f87krz0w

f87krz0w4#

如果要使用numpy

import numpy as np
l = [15, 15, 15, 4, 4, 4, 4, 4, 4]

np.vstack(np.unique(l, return_counts= True)[::-1]).ravel(order='F')

输出:

array([ 6,  4,  3, 15])

这里,顺序是按l的升序值

相关问题