我尝试了几种解决方案: 1.)
uniqueValues, indexList,occurCount = np.unique(desired_array,
return_index=True, return_counts=True)
print(uniqueValues,indexList,occurCount)
但是,indexList
只给出数字的第一个匹配项。例如:如果num 33出现在20,56,3000处,indexList只会显示它出现在20处。由于33出现的次数不到10次,即3次,因此我需要所有的位置。
2.)我决定使用字典来查找所有的索引位置。但这是行不通的。
for i in range(5000):
...: if not d.get(i):
...: d[desired_array[i]]=[i]
...: else:
...: indices = d[desired_array[i]]
...: indices.append(i)
发布于 2019-12-08 13:07:56
这个作业为collections.Counter而尖叫
from collections import Counter
desired_array = [1, 2, 3, 1, 3, 5, 3]
result = Counter(desired_array)
print(result)
这将打印出唯一的元素和出现次数:
Counter({3: 3, 1: 2, 2: 1, 5: 1})
你可以替换
for i in range(1250):
var = desired_array[i]
if not d.get(var):
d[var] = []
# print(var)
s = d[var]
s.append(i)
使用
for i in range(1250):
var = desired_array[i]
d.setdefault(var, []).append(i)
根据文档dict.setdefault(key, default)
如果key在字典中,则返回它的值。如果不是,则插入值为default的key并返回default。默认值为None。
要编写csv文件,最好使用标准的csv.Writer
类:
import csv
with open('some.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(someiterable)
如果您想要将dict的键/值对写入csv文件,则需要编写类似以下内容:
with open('some.csv', 'w', newline='') as f:
writer = csv.writer(f)
for k, v in desired_array.items():
writer.writerow((k, v))
https://stackoverflow.com/questions/59234687
复制