You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyPy执行Pandas相关性计算慢于Python的原因探究

问题

尝试用PyPy执行Pandas的相关性计算,原本以为PyPy会比Python更快,但实际测试中Python耗时7分钟,PyPy反而耗时8.5分钟。测试代码如下:

import pandas as pd
import time

t = time.time()

df = pd.read_csv('./dfn.csv', index_col=0)

df.T.corr()

print(time.time()-t)

请问这一现象的原因是什么?

原因分析

  • Pandas的核心计算逻辑(比如相关性计算)大部分基于C语言实现(依赖NumPy、Cython等底层库),CPython对这类原生扩展的调用效率已经极高,PyPy在该场景下没有优势,甚至会因为额外的兼容层开销拖慢速度。
  • PyPy的JIT(即时编译)优势只体现在纯Python代码的优化上,对于调用C扩展的场景,JIT无法发挥作用——执行流程会跳转到原生C代码,PyPy无法对这部分代码做编译优化,反而要承担跨虚拟机的调用成本。
  • Pandas并未针对PyPy做专门的优化适配,部分内部逻辑在PyPy环境下可能存在内存管理、数据结构交互等方面的性能损耗。
  • 相关性计算(corr())属于计算密集型的原生操作,CPython直接调用C实现的计算内核,而PyPy需要通过桥接层调用这些C代码,额外的调用成本在大规模数据集的计算中会被显著放大。

内容的提问来源于stack exchange,提问作者Yasir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:54:54