在下面的代码中,我想检查列表中有多少个唯一值,可以在for循环中完成。知道唯一值的数量后,我想查看单个唯一值在中出现多少次,然后我要计算它们的数量。有人可以指导我如何做到这一点。列表包含浮点。如果将其转换为numpy数组然后找到相同的值,该怎么办。
`a= [1.0, 1.0, 1.0, 1.0, 1.5, 1.5, 1.5, 3.0, 3.0]
list = []
for i in a:
if i not in list:
list.append(i)
print(list)
for j in range(len(list))
g= np.argwhere(a==list[j])
print(g)`
答案 0 :(得分:1)
您可以使用np.unique完成它
np.unique(np.array(a),return_counts=True)
您也可以使用集合中的计数器
from collections import Counter
Var=dict(Counter(a))
print(Var)
原始方法是使用循环
[[x,a.count(x)] for x in set(a)]
如果您不熟悉列表理解,这是它的解释
ls=[]
for x in set(a):
ls.append([x,a.count(x)])
print(ls)
如果要使用if else,
counter = dict()
for k in a:
if not k in counter:
counter[k] = 1
else:
counter[k] += 1
print(counter)