Scalar_Function只能处理标量输入,我们可以使用函数np.vectorize()将其转换为矢量化函数。请注意,NP.Dectorize()的输入参数应为标量函数,并且NP.Dectorize()的输出是可以处理向量输入的新函数。 please编写矢量函数vector_function,该功能将应用上面定义的操作𝑓(𝑥,𝑦),用具有相同维度x和y的输入向量定义的元素 - 元素。
为标量,我得到了:
def scalar_function(x, y):
if x <= y:
return x*y
else:
return x/y
对于向量函数,我拥有:
def vector_function(x, y):
vfunc = np.vectorize(scalar_function, otypes = [float])
return vfunc
从这里我被困在这里。
基于此
'Please write a vector function vector_function, which will apply the operation 𝑓(𝑥,𝑦) defined above element-wisely with input vectors with same dimension x and y'
import numpy as np
def scalar_function(x, y):
if x <= y:
return x*y
else:
return x/y
vector_function = np.vectorize(scalar_function, otypes = [float])
print(vector_function(np.array([1, 2, 3, 6]), np.array([1, 3, 4, 5])))
[Output]>>> [ 1. 6. 12. 1.2]
try这个
vector_function = np.vectorize(scalar_function)
try这个
返回np.vectorize(scalar_function)(x,y)