我想知道是否有另一种编码方式 此问题的核心是解决此问题的最简单方法是读取文件并将值保存在列表中。你在哪里:
a = [1,2,3,4,5,6,1,1,1,1]
import statistics
listMode = statistics.mode(a) # median, average, etc...
我想知道而不是必须在a
中保存这些值(所以内存可能非常大),我是否可以在读取文件时动态计算模式并每次更新单个值我读了一个新的行,即逐步计算模式,中位数和平均值。所以最后我会a = [mode,median,average]
。
答案 0 :(得分:3)
如果输入数字集合来自一个相当小的值范围,就像在您的示例中一样,您可以使用Counter
来计算您在经过时看到的每个值的数量。从那个Counter
你可以很容易地得到模式,中等有点工作。动态计算平均值很简单,不需要Counter
:只需保持运行总计和运行计数。