在NumPy中,使用vectorize()
函数可以在数组上映射函数。使用该函数,可以将一个接受标量输入并返回标量输出的Python函数转换为可用于接受NumPy数组并返回NumPy数组的函数。以下是在NumPy数组上映射函数的步骤:
步骤1:定义一个原始函数
定义一个Python函数,该函数接受标量输入并返回标量输出。例如,我们可以定义一个函数来计算平方。
def square(x):
return x ** 2
步骤2:使用vectorize()
函数创建可向量化的函数
使用vectorize()
函数,将原始函数转换为可在NumPy数组上使用的函数。
import numpy as np
square_vectorized = np.vectorize(square)
vectorize()
函数将返回一个新函数,该函数是原始函数的向量化版本。此时的square_vectorized
函数可以接受NumPy数组,并返回元素级别的平方值。
步骤3:将向量化函数应用于NumPy数组
使用新的向量化函数来处理NumPy数组。
arr = np.array([1, 2, 3, 4, 5])
arr_squared = square_vectorized(arr)
print(arr_squared)
输出结果为:
[ 1 4 9 16 25]
这里我们首先创建了一个包含1到5数字的NumPy数组arr
。然后,我们使用步骤2中定义的square_vectorized()
函数将arr
数组进行平方操作,结果存放在变量arr_squared
中。最后输出了结果。
示例2:
def is_odd(num):
return num%2 == 1
import numpy as np
is_odd_vectorized = np.vectorize(is_odd)
arr = np.array([1, 2, 3, 4, 5])
arr_odd = is_odd_vectorized(arr)
print(arr_odd)
输出结果为:
[ True False True False True]
这里我们首先创建了一个包含1到5数字的NumPy数组arr
。然后,我们使用步骤2中定义的is_odd_vectorized()
函数将arr
数组进行判断奇偶,结果存放在变量arr_odd
中。最后输出了结果。
以上就是在NumPy数组上映射函数的完整攻略,通过定义一个原始函数、使用vectorize()
函数创建可向量化的函数、将向量化函数应用于NumPy数组来实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在NumPy数组上映射一个函数 - Python技术站