使用Python(Numpy,Pandas等)和性能增量和统计地测量样本

时间:2015-10-04 18:37:57

标签: numpy pandas

让我说我接收一个输入数据流(非常快)我希望查看窗口的各种统计数据(标准偏差,(例如,最后N个样本,N非常大)。什么&# 39;用Python做最好的方法吗?

例如,

df=ps.DataFrame(np.random.random_sample(200000000))
df2 = df.append([5])

在Visual Studio中崩溃了我的REPL环境。

有没有办法在没有这种情况下附加到数组?有没有办法告诉数据帧上哪些操作是递增计算的,而不是对它们执行timeit?

1 个答案:

答案 0 :(得分:0)

我建议用numpy数组构建一个循环缓冲区。

这将涉及跟踪上次更新点的索引,并在添加新值时将其递增。

import numpy as np

circular_buffer = np.zeros(200000000, dtype=np.float64)
head = 0

# stream input

    circular_buffer[head] = new_value

    if head == len(circular_buffer) - 1:
        head = 0
    else:
        head += 1

然后你可以在circular_buffer上正常计算统计数据。

如果你没有足够的RAM

尝试在bquerybcolz中实施类似内容。这些比numpy(使用压缩)更有效地存储您的数据,并提供类似的性能。 Bquery现在有平均值和标准差。 注意:我是bquery的贡献者