NumPy ufuncs
什么是 ufuncs?
ufuncs 是“通用函数”(Universal Functions) 的缩写,它们是 NumPy 操作 ndarray
对象的函数。
为什么使用 ufuncs?
ufuncs 用于在 NumPy 中实现向量化,这比迭代元素快得多。
它们还提供了广播以及 reduce、accumulate 等附加方法,这些方法对于计算非常有帮助。
ufuncs 还可以接受其他参数,例如:
where
: 定义操作应在何处执行的布尔数组或条件。
dtype
: 定义元素的返回类型。
out
: 将返回值复制到的输出数组。
什么是向量化?
将迭代语句转换为基于向量的操作称为向量化。
它速度更快,因为现代 CPU 针对此类操作进行了优化。
将两个列表的元素相加
列表 1: [1, 2, 3, 4]
列表 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 有一个用于此的 ufunc,称为 add(x, y)
,它将产生相同的结果。
示例
使用 ufunc,我们可以使用 add()
函数
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)
自己动手试一试 »