如何在NumPy数组上映射一个函数
在这篇文章中,我们将看到如何在Python中在NumPy数组上映射一个函数。
方法一:numpy.vectorize()方法
numpy.vectorize()函数在包含NumPy数组等对象序列的数据结构上映射函数。嵌套的对象序列或NumPy数组作为输入,并返回单个NumPy数组或NumPy数组的元组。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
def addTwo(i):
return i+2
applyall = np.vectorize(addTwo)
res = applyall(arr)
print(res)
输出:
[3 4 5 6 7]
解释:该函数被传递给向量方法,并再次将数组传递给它,该函数将返回应用数组的数组。
方法2:使用lambda函数
lambda是一个匿名函数,它接受任何数量的参数,但评估一个表达式。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
def applyall(i):
return i + 2
res = applyall(arr)
print(res)
输出:
[3 4 5 6 7]
方法3:用一个数组作为函数的参数来映射一个NumPy数组
我们可以将一个函数映射到一个NumPy数组上,只需将数组传递给函数。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
def applyall(a):
return a+2
res = applyall(arr)
print(res)
输出:
[3 4 5 6 7]
解释:数组被传递给applyall()方法,它将把函数映射到整个数组,并返回结果数组。