我试图向量化Python中的分段定义函数。我要定义的函数如下:
我试图将其定义为:
def g(x,n,w):
global y
for i in range(n):
if i+w*i < x < w*i +i+1:
y=x-w*i
elif i + w*(i-1)<=x<= i + w*i:
y=i
return(y)
当我打电话时它似乎正在工作。例如,如果我写:
n=10
w=1
s=lambda x:g(x,n,w)
然后函数s似乎在执行我认为应该执行的操作。但是,我想将其应用于整个向量,为此,我想可以使用numpy
函数“ vectorize”:
import numpy as np
x=np.linspace(0,4,20)
sv=np.vectorize(s)
但是,如果我将函数sv
应用于向量x
,它将仅返回整数值。例如对于0<=t<1
,s(t)=t
,但是如果相同的t
是向量x
的一部分,它将是0
中的sv(x)