在NumPy阵列的每个单元处有效地评估函数,可以使用NumPy的广播功能来实现。广播功能允许你在不同形状的阵列之间执行数学运算,而无需显式地重复数据。这在处理大型阵列时非常有用,因为它可以避免不必要的内存使用和计算时间。
以下是一个使用NumPy广播功能在阵列中评估函数的示例:
import numpy as np
# 定义一个函数,该函数将在阵列中的每个单元格上调用
def my_function(x):
return x ** 2
# 创建一个示例阵列
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 使用NumPy的vectorize函数将函数应用于阵列中的每个单元格
vfunc = np.vectorize(my_function)
result = vfunc(arr)
print(result)
输出:
[[ 1 4 9]
[16 25 36]
[49 64 81]]
在这个例子中,我们定义了一个简单的函数my_function
,它将输入的数字平方。然后,我们使用NumPy的vectorize
函数将这个函数应用于阵列中的每个单元格。最后,我们打印出结果阵列。
请注意,vectorize
函数仅适用于一维输入。如果你需要在多维阵列上使用它,你可能需要使用np.nditer
或np.vectorize
函数。
领取专属 10元无门槛券
手把手带您无忧上云