python - 在 Pandas 中更快地计算相关矩阵
问题描述
我已将给定 Pandas DataFrame df 上的以下操作确定为我的代码的瓶颈。
df.corr()
我想知道是否存在一些替代品来加快这一步?
谢谢!
解决方案
您可以尝试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)
推荐阅读
- python - TypeError:行索引必须是整数,而不是str在python插入查询中
- r - 如何通过匹配R中的其他两列将列中的值提取到数据框中
- angular - Angular 8 错误 - 无法读取未定义的属性“toString”
- python - nohup & or daemon 有什么不同(在 uwsgi 上用于 restful 服务器)?
- php - 多变量重定向
- python-3.x - Spyder 用 Tkinter 后端绘制无响应
- vba - MSForms.ReturnInteger - 使用 vbKey 改变形状的位置
- java - 如果我在保存之间读取消息,FileOutputStream 只会将消息写入文件
- maven-release-plugin - Bintray 409 冲突 - mvn 发布插件上传 jar 两次?
- gnuplot - Gnuplot - 拟合