我正在对连续地震数据进行一些非常长的计算,其中效率是一个大问题。我试图测试是否将所有numpy数组转换为float 32而不是使用默认的float64将产生显着的加速,因为可能不需要双精度。然而,一个问题是我使用pandas滚动mean和滚动std作为处理的一部分,似乎自动将float32数组上的操作结果转换回float64,从而破坏了原始重铸的目的。例如,
import numpy as np, pandas as pd
r=np.random.rand(10000).astype(np.float32) # a float32 array
n=30 #window length for rolling operation
a=pd.rolling_mean(r,n)
现在当我检查a.dtype时它是一个float64。我可以简单地将变量a重新设置为返回到float32,但这可能会增加运行时间而不是减少它。有什么想法吗?