Python 3.4 计算众数、读取文件的中位数

标签 python python-3.x

我想知道是否还有另一种编码方式 这个问题的核心是解决这个问题的最简单方法是读取文件并将值保存在列表中。那么你会在哪里:

a = [1,2,3,4,5,6,1,1,1,1]
import statistics
listMode = statistics.mode(a) # median, average, etc...

我想知道是否可以在读取文件并更新 a 时动态计算模式,而不是必须将这些值保存在 a 中(因此内存可能非常大)每次我读新行时都使用单个值,即增量计算众数、中位数和平均值。所以最后我会得到a = [mode,median,average]

最佳答案

如果输入数字集来自相当小的值域(如您的示例中所示),您可以使用 Counter 来计算当它们经过时您看到的每个值的数量。从那个 Counter 中,您可以轻松获得众数,并且只需做一些工作即可获得中位数。动态计算平均值很容易,不需要计数器:只需保留运行总计和运行计数即可。

关于Python 3.4 计算众数、读取文件的中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39361434/

相关文章:

python - 设置属性 python

python - 在 sqlalchemy 中动态生成过滤器,混合使用 and/or 和 not/like

python - 使用 sys.argv 检索不同的函数

python-3.x - Django channel 错误 "took too long to shut down and was killed."

python - 使此目录同步脚本检测更改并在后台运行

python - 尝试使用 scipy 插入 2D 数据 - 只获取 NaN 数组

python - python的gst.LinkError问题的Gstreamer

python - 列表增量列表(如果存在)否则扩展

python - 在 Python 中迭代对象列表时打印 None

python-3.x - Python 3 中连接序列的首选方法是什么?