gpt4 book ai didi

python - 使用 `np.vectorize` 进行矢量化

转载 作者:行者123 更新时间:2023-12-04 15:22:44 26 4
gpt4 key购买 nike

我想使用 np.vectroize 向量化以下函数:

def f(x):
if 0<=x<=1:
return 0.5
elif 1<x<=3:
return 0.25
else:
return 0

下一步:

f = np.vectorize(f)

但是,如果我将负值放入 f 的输入数组中,突然间所有输出值都变为零。当所有值都是正数时没有问题。例如:

f([-0.1,1,2,3,4])

输出是:

array([0, 0, 0, 0, 0])

最佳答案

问题出在数组的类型上。根据documentation

The data type of the output of vectorized is determined by calling the function with the first element of the input.

类型由第一个值确定,即0,因此类型为整数。如果返回 0.250.5,它将转换为 0(如 int(0.25) int(0.5)0)

解决方法:

f = np.vectorize(f,"d")

return 0.0 # or float(0), but must be float

关于python - 使用 `np.vectorize` 进行矢量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62958752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com