【发布时间】:2015-03-14 11:15:31
【问题描述】:
我正在尝试将累积分布计算到字典中。分布应该从给定文本中获取字母,并找到它们出现在文本中的时间的概率,并据此计算累积分布。 我不知道我的做法是否正确,但这是我的代码:
with open('text') as infile:
text = infile.read()
letters = list(text)
letter_freqs = Counter(letters(text))
letter_sum = len(letters)
letter_proba = [letter_freqs[letter]/letter_sum for letter in letters(text)]
现在我不想计算累积分布,而是像直方图一样绘制它,有人可以帮我吗?
【问题讨论】:
-
@NoobSaibot 这是什么?
-
letters(text)的使用已被破坏(letters是list,不可 可调用,但您正在尝试调用它)。并且,您要累积 什么 序列?letters本身?sorted(set(letters))?itertools.accumulate当然可以进行累积——但作为一个序列,“绘制字典”无论如何看起来很奇怪,因为字典没有顺序...... -
在我的情况下最好做什么@AlexMartelli。你能给我一个代码的例子吗?
-
@py.codan,当然,看看我的回答。如果您编辑 Q 以精确指定问题,则答案可能会相应更改。至于绘图,请参阅例如stackoverflow.com/questions/12303501/… - 但它不会“绘制字典”(?!),它当然会绘制一个呈现为 sequence 的直方图(字典没有顺序,那么你将如何绘制它?!)
标签: python dictionary histogram cumulative-sum cumulative-frequency