首页 >后端开发 >Python教程 >如何高效地将函数应用于 NumPy 数组?

如何高效地将函数应用于 NumPy 数组?

Barbara Streisand
Barbara Streisand原创
2024-12-18 04:42:16932浏览

How Can I Efficiently Apply Functions to NumPy Arrays?

Numpy 数组的向量化函数

要在 numpy 数组上有效地映射函数,您可以利用向量化的强大功能,它允许您对数组按元素执行操作。这比使用基于循环的方法(如列表推导式)要快得多。

NumPy 本机函数

如果您要映射的函数已经矢量化为 NumPy 函数,例如 np.square() 用于对元素进行平方,强烈建议使用它。它将比其他方法快得多。

使用 NumPy 的向量化进行向量化

NumPy 提供了向量化函数的向量化函数。它包装您的函数以在数组上启用按元素操作:

import numpy as np

def f(x):
    return x ** 2

vf = np.vectorize(f)
x = np.array([1, 2, 3, 4, 5])
squares = vf(x)

另一种选择是在不初始化函数包装器的情况下使用向量化:

squares = np.vectorize(f)(x)

其他向量化方法

其他矢量化方法include:

  • np.fromiter():迭代生成器并构造一个数组。
  • np.array(list(map(f, x))):使用地图function 对每个元素应用函数,然后转换为数组。

性能注意事项

虽然所有这些方法都可以向量化函数,但它们的性能可能会有所不同。基准测试表明,如果可用,使用 NumPy 的本机函数是最快的。对于其他情况,向量化和 fromiter 通常比 np.array(list(map(f, x))) 表现更好。

以上是如何高效地将函数应用于 NumPy 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn