【问题标题】:What is pythonic way to do memory save column aggregations?什么是 pythonic 方法来做内存保存列聚合?
【发布时间】:2016-02-04 08:51:21
【问题描述】:

我是 python 新手,如果这是一个愚蠢的问题,我很抱歉。我有类似数据结构的表,并且想对每一列应用不同的聚合函数以获得某种total 行:

data = [
   [1, 2, 3, 4, 5],
   [6, 7, 8, 9, 10],
   [11, 12, 13, 14, 15],
]
agg_func = [sum, min, max, mean, median]

total_row = [agg_func[index](value) for index, value in enumerate(zip(*data))] 

如果我有大量数据(数百万行数据),这是进行这种聚合的正确方法(就内存节省而言)?这里有什么方法可以更快地进行这种计算吗?

【问题讨论】:

  • 是的,假设您已经同时在内存中拥有数百万行数据,这是一种在内存方面的好方法。

标签: python performance list memory aggregate


【解决方案1】:

尝试numpy 进行这种计算。它允许您在高维结构的第一个维度上应用聚合函数。

import numpy as np
data = np.array([
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
])
agg_func = [np.sum, np.min, np.max, np.mean, np.median]
total_row = [f(data, axis=0) for f in agg_func]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多