我有以下简单的
Python函数:
def get_lerp_factor( a,x,b ):
if x <= a: return 0.
if x >= b: return 1.
return (x - a) / (b - a)
许多numpy函数,如numpy.sin(x)可以处理浮点数或数组.
那么如何以相同的方式扩展它,以便它还可以处理x的numpy数组?
def get_lerp_factor( a,x_maybe_array,b ):
out = (x_maybe_array - a) / (b - a) # this should work...
# but now I have to clamp each element of out between 0 and 1
我是否必须专门检查x的类型,并相应地进行分支?
怎么样:
def get_lerp_factor( a,x_anything,b ):
x = np.array( x_anything )
out = ...(x)
# now typecast out back into the same type as x... will this work?
?