首页 > 后端开发 > Python教程 > np.vectorize() 总是在 Pandas 中创建新列的最快方法吗?

np.vectorize() 总是在 Pandas 中创建新列的最快方法吗?

DDD
发布: 2024-10-26 12:42:02
原创
645 人浏览过

 Is np.vectorize() Always the Fastest Way to Create New Columns in Pandas?

创建新列时,np.vectorize() 始终比 Pandas apply() 更快吗?

是的,np.vectorize() 是对于此任务,通常比 Pandas apply() 更快。我们的测试表明 np.vectorize() 可以明显更快,尤其是对于较大的数据集。

为什么 np.vectorize() 比 apply() 更快?

Pandas apply() 依赖于 Python 级循环来迭代数据帧中的行或列。与 np.vectorize() 相比,这会带来显着的开销,后者使用优化的基于 C 的代码进行矢量化操作。

np.vectorize() 将您的输入函数转换为通用函数 (ufunc) 并对其进行评估使用广播的输入数组的连续元组。这避免了创建和传递 Pandas 对象的开销,从而提高了性能。

np.vectorize() 应该优先于 apply() 吗?

用于创建新列作为现有列的函数,np.vectorize() 由于其卓越的性能通常是更好的选择。但是,需要注意的是,与 apply() 相比,np.vectorize() 的灵活性有限,尤其是在访问其他列或执行复杂操作时。

其他更快的选项

对于真正优化的向量化计算,像 np.where() 或逐元素运算这样的 NumPy 运算非常有效。如果性能至关重要,请考虑使用这些库或探索像 numba 这样的库,它们可以对自定义函数进行高效的 JIT 编译。

以上是np.vectorize() 总是在 Pandas 中创建新列的最快方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板