NumPy ufuncs
什么是 ufuncs?
ufuncs 是“通用函数”(Universal Functions)的缩写,它们是操作 ndarray 对象的 NumPy 函数。
为什么要使用 ufuncs?
ufuncs 用于在 NumPy 中实现向量化,这比迭代元素要快得多。
它们还提供了广播和额外的方法,如 reduce、accumulate 等,这些方法对计算非常有帮助。
ufuncs 还接受额外的参数,例如:
where
布尔数组或条件,定义操作应在何处进行。
dtype
定义元素的返回类型。
out
输出数组,应将返回值复制到此数组。
什么是向量化?
将迭代语句转换为基于向量的操作称为向量化。
由于现代 CPU 针对此类操作进行了优化,因此速度更快。
添加两个列表的元素
list 1: [1, 2, 3, 4]
list 2: [4, 5, 6, 7]
一种方法是迭代两个列表,然后对每个元素求和。
实例
不使用 ufunc,我们可以使用 Python 的内置 zip()
方法:
x = [1, 2, 3, 4] y = [4, 5, 6, 7] z = [] for i, j in zip(x, y): z.append(i + j) print(z)
NumPy 为此提供了一个名为 add(x, y)
的 ufunc,它将产生相同的结果。
实例
通过 ufunc,我们可以使用 add()
函数:
import numpy as np x = [1, 2, 3, 4] y = [4, 5, 6, 7] z = np.add(x, y) print(z)