Pandas apply 与 NumPy vectorize 在创建列时的性能注意事项
虽然 Pandas apply 被广泛使用,但在创建列时其性能落后于 NumPy vectorize来自现有列的新列。这种差异归因于这样一个事实:apply 函数是 Python 级别的循环,会产生大量开销。相比之下,向量化将输入函数转换为通用函数,显着提高了效率。
性能基准
比较Python级别的循环并应用raw=True,我们观察:
真正的向量化
但是,apply 和 vectorize 都被真正的向量化操作(例如 np.where)所掩盖,这些操作在 NumPy 数组上按元素执行计算。这种方法速度明显更快,无需循环。
进一步的性能注意事项
对于关键瓶颈,请考虑 numba,这是一个将 Python 函数编译为高度优化的 C 语言的工具代码。使用 numba,可以进一步加速计算。
结论
当从现有列创建新列时,NumPy 矢量化由于其原生矢量化而提供了比 Pandas apply 更优越的性能能力。为了获得最佳效率,应在适用的情况下采用真正的矢量化。
以上是在 Pandas DataFrame 中创建新列哪种方法更快:Pandas Apply 或 NumPy Vectorize?的详细内容。更多信息请关注PHP中文网其他相关文章!