Numpy.以若干条件/函数作为变量分段地进行


n = len(x_coords)
conditions = [x_coords[i] <= x <= x_coords[i+1] for i in range(n-1)]
functions = [f(x,i) for i in range(n-1)]
def g(x):
return np.piecewise(x, conditions, functions)

' x_coords '只是一个x_coordinates列表,我在其中定义了不同的函数

当我运行这段代码时,我得到错误" ' float '和' list '实例之间不支持' <= ' "

我想我知道问题是什么了——我创建的列表中的元素是语句而不是值。然而,我不知道如何解决这个问题,因为我需要一个

的条件语句和函数列表。
np.piecewise 

函数参数

只使用np。数组而不是列表,因为此操作未为内置列表定义。做的事:

x_coords = np.array(x_coords)

您还可能需要拆分条件:

conditions = [ (x_coords[i] <= x) & (x <= x_coords[i+1]) for i in range(n-1)]

最新更新