NumPy ufunc


什么是 ufunc?

ufuncs 代表"Universal Functions",它们是在ndarray目的。

为什么使用ufunc?

ufunc 用于实现矢量化在 NumPy 中,这比迭代元素要快得多。

它们还提供广播和其他方法,如减少、累积等,这对计算非常有帮助。

ufunc 还接受其他参数,例如:

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)
亲自试一试 »