python - 对 pandas 系列 `any` 、 `max` 、 `sum` 与 python 内置函数的性能好奇心

标签 python pandas numpy built-in

使用 pandas/numpy 在 python 应用程序中寻求性能通常受益于使用 pandas/numpy 实现的方法,而不是自己实现的代码(例如通过循环)。这可能是对我的问题的一个不好的介绍,但在下面的屏幕截图中(如果我没有测试过的话)我期望使用该系列方法的版本比 python 内置函数运行得更快。因为事实并非如此,这意味着我对这个例子建立了错误的直觉,但我还找不到原因。所以问题是,为什么在这种情况下使用 python 内置函数比该系列中应用的方法具有更高的性能(我是否还遗漏了其他内容?)?

enter image description here

最佳答案

Pandas 有自己的函数,与 Python 的内置函数方式不同,因此,如果您调用 Series.max(),您实际上是在调用 nanops._nanminmax()这是通过 IndexOpsMixin 添加的而不是builtins.max()

每个行为都不同,因此有不同的性能时间。

其余方法也类似。如果您好奇,请查看 Series 的源代码类及其继承的类,以明确内置函数和 Pandas 实现之间的差异。

关于python - 对 pandas 系列 `any` 、 `max` 、 `sum` 与 python 内置函数的性能好奇心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68436496/

相关文章:

python - 数据框组中的列条件

python - 如何根据不在索引中的日期对 Pandas 时间序列进行切片?

python - 基于 str.contains 隔离相邻的列

python - 子集化后如何添加列?

python - Pyramid +MySQL

python - 如何从该字典中获取 'Last' 值?

python - DataFrame 列将字典列表存储为字符串 : Parse it and build a new dataframe

python - subprocess.Popen() - 顺序对于 p.stdout.read() 和 p.wait() 重要吗?

python - Tensorflow csv 数据集使用

python - numpy 按索引求和矩阵行