如何将数组转换为可调用函数

时间:2015-07-07 18:31:08

标签: python numpy

我有一个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)或类似的内容......

1 个答案:

答案 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(...)将其强制转换为浮点数。