大数据方法:数据矩的迭代(分块)计算

2024-04-25 19:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有太字节的数据。因此,当无法同时加载所有数据时,标准的pandasnumpy过程(group-bymeanhistogram等)将无法工作。你知道吗

我的数据将来自^{},它可以返回具有可变块大小块的迭代器。你知道吗

现在我需要的是基于迭代方法计算数据矩的方法。你知道吗

期望值是直截了当的:

n, mean = 0, 0
for chunk in iterator:
    nCurrent = len(chunk)
    meanCurrent = chunk['variable'].mean()
    mean = (n * mean + nCurrent * meanCurrent)/(n + nCurrent)
    n += nCurrent

然而,目前还不清楚一般的方法是什么。对于高阶矩,我该怎么做呢?你知道吗

另外,我对绘制分布图很感兴趣。假设我决定做一个直方图。如果一开始不知道分配的限制,就很难创建垃圾箱。我是否首先需要遍历整个分布以获得最小值和最大值,然后创建垃圾箱并开始计数?还是有更好的办法?你知道吗


Tags: 数据方法numpypandas标准by字节过程
1条回答
网友
1楼 · 发布于 2024-04-25 19:47:26

对于平均值(mean),可以这样做:

i, cumsum = 0
for chunk in store.select('key', chunksize=N):
    cumsum += chunk['variable'].sum()
    i += len(chunk)

my_mean = cumsum / i

作为一种常规方法,如果您必须处理太字节的数据,我会选择Hadoop集群上的apachespark

相关问题 更多 >