Gia*_*ear 2 python statistics performance memory-efficient
我有超过6500万个数值存储在文本文件中.我需要计算最大值,最小值,平均值,标准差以及25%,50%和75%的百分位数.
通常我会使用附加的代码,但我需要一种更有效的方法来计算这些指标,因为我无法将所有值p存储在列表中.如何在Python中更有效地计算这些值?
import numpy as np
np.average(obj)
np.min(mylist)
np.max(mylist)
np.std(mylist)
np.percentile(obj, 25)
np.percentile(obj, 50)
np.percentile(obj, 75)
maxx = float('-inf')
minx = float('+inf')
sumz = 0
for index, p in enumerate(open("foo.txt", "r")):
maxx = max(maxx, float(p))
minx = min(minx, float(p))
sumz += float(p)
index += 1
my_max = maxx
my_min = minx
my_avg = sumz/index
Run Code Online (Sandbox Code Playgroud)
使用二进制文件.然后,您可以使用numpy.memmap它将其映射到内存并执行各种算法,即使数据集大于RAM也是如此.
您甚至可以使用numpy.memmap创建一个内存映射数组,并从文本文件中读取您的数据...您可以使用它,当您完成后,您还可以使用二进制格式的数据.
| 归档时间: |
|
| 查看次数: |
1859 次 |
| 最近记录: |