首页 > 解决方案 > 在 Pandas 中更快地计算相关矩阵

问题描述

我已将给定 Pandas DataFrame df 上的以下操作确定为我的代码的瓶颈。

df.corr()

我想知道是否存在一些替代品来加快这一步?

谢谢!

标签: pythonpandas

解决方案


您可以尝试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)

推荐阅读