我知道python循环本身与其他语言相比相对较慢,但是当使用正确的函数时,它们会变得更快。 我有一个名为“声学”的熊猫数据帧,它包含超过1000万行:
print(acoustics)
timestamp c0 rowIndex
0 2016-01-01T00:00:12.000Z 13931.500000 8158791
1 2016-01-01T00:00:30.000Z 14084.099609 8158792
2 2016-01-01T00:00:48.000Z 13603.400391 8158793
3 2016-01-01T00:01:06.000Z 13977.299805 8158794
4 2016-01-01T00:01:24.000Z 13611.000000 8158795
5 2016-01-01T00:02:18.000Z 13695.000000 8158796
6 2016-01-01T00:02:36.000Z 13809.400391 8158797
7 2016-01-01T00:02:54.000Z 13756.000000 8158798
我写的代码是:
^{pr2}$它需要大量的时间,我怎样才能使它更快?在
数据帧有一个很好的方法
rolling
来构造和应用窗口转换;因此,您根本不需要循环:第一个优化,
weights[c]/sumWeights
可以在循环之外完成。在我对pandas不熟悉,但如果您可以将列提取为1D numpy数组,那将对您非常有用。它可能看起来像:
^{pr2}$您可以使用} 并为数组中的每一行创建所有差异,然后与您的
pandas
中的^{weigths
相乘,最后在轴1上sum
,例如:你得到的值和我用你的代码得到的值一样:
^{pr2}$相关问题 更多 >
编程相关推荐