我有一个np.piecewise
函数我希望变成一个可调用的函数。
例如,假设我们有:
import numpy as np
x = np.linspace(0,10,1001)
my_func = np.piecewise(x, [x<8, x>=8], [np.sin, np.cos])
我有兴趣创建一个函数my_callable_func
,它对my_func有一些合理的评价。合理的是,我们只是默认为x
中的上一步,或者我们在连续的x
值之间使用某种线性近似。
例如,在这种情况下x = [0, 0.01, 0.02, ...]
,所以给定my_new_func(0.015)
,我希望返回np.sin(0.01)
或类似的内容......
答案 0 :(得分:3)
您可以简单地将np.piecewise
调用包装在函数定义
In [1]: def my_callable_func(x):
...: return np.piecewise(x, [x<8, x>=8], [np.sin, np.cos])
...: my_callable_func(0.015)
Out[1]: array(0.01499943750632809)
原始x
向量的值无关紧要。这会生成一个0D numpy数组,但如果需要,可以使用return float(...)
将其强制转换为浮点数。