我想计算字典中值的出现百分比。 d.values/sum(d.values)*100
它给出了错误:unsupported operand type(s) for /: 'list' and 'int'
你不能用整数分割整个列表。我想,并且我在计数的时候用d =(Counter([Counter(i)['1'] for i in f.readlines()]))
进行了尝试,您可以计算百分比,但它不起作用。如果有人有想法,请让我知道。计算python字典的百分比
from collections import Counter
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
with open("data_binary.txt") as f:
d=(Counter([Counter(i)['1'] for i in f.readlines()]))
print d
p = d.values()
X = np.arange(len(d))
pl.bar(X, p, align='center',width=0.25)
a = np.array(d.items())
pl.xticks(X,d.keys())
a = a[np.argsort(a[:,0])]
#print a
ymax=max(d.values())+1
pl.ylim(0, 70000)
plt.xlabel ("Number of ones")
plt.ylabel ("Number of Signatures")
plt.title("[email protected]")
pl.show()
可以给你一个例如。字典是怎么样的? – AceLearn
为什么不直接使用'np.fromfile'(如果是二进制)或'np.loadtxt'将数据直接加载到'np.array'? – Crispin