在给定的Pandas DataFrame df上执行以下操作已将我的代码确定为瓶颈。
df.corr()
我想知道是否有一些替代产品来加快这一步?
谢谢!
答案 0 :(得分:2)
您可以改用numpy.corrcoef
:
pd.DataFrame(np.corrcoef(df.values, rowvar=False), columns=df.columns)
# Setup
np.random.seed(0)
df = pd.DataFrame(np.random.randn(1000, 1000))
df.corr()
# 15 s ± 225 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
pd.DataFrame(np.corrcoef(df.values, rowvar=False), columns=df.columns)
# 24.4 ms ± 299 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)