【发布时间】:2017-01-14 15:28:41
【问题描述】:
我想知道是否有另一种编码方式 这个问题的核心是解决这个问题的最简单的方法是读取一个文件并将值保存在列表中。那么你会在哪里:
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]。
【问题讨论】:
-
即使在非常大的数据集上,我也看不到如此简单的操作需要很长时间,因此我认为没有理由尝试“即时”计算,而是在最后完成所有操作
-
如何“增量”?如果文件只被读取一次,您将需要为数据集中的每个唯一值存储至少一个值和一个计数。如果读取文件的次数与文件中值的数量相同,则所需的存储空间会减少,但执行时间会急剧增加。
-
我有一个相当水平的嵌套字典,并且不希望有一个巨大的列表,出于同样的原因,我想对许多变量执行此操作,它会使生活更清洁。如果性能成为一个重要问题,那么这使得选项变得清晰。但是,我在制作模式和中值工作方面没有成功。平均要容易得多,并且经历了改进。
标签: python python-3.x