我有一系列的“成本斜率”,代表一个线性函数f
,以痛苦的形式给出。下面是一个小得多的例子:
slopes = Series({'-inf': 10, -200: 60, 0: 0, 200: 1, 'inf': 10})
-inf 10
-200 60
0 0
200 1
inf 10
(0,0)始终在序列中,斜率表示从零向任意方向移动时的分段“边际成本”
f(-200) = 12000 # abs(-200) * 60
f(-100) = 6000 # abs(-100) * 60
f(0) = 0
f(100) = 100 # 100 * 1
f(200) = 200 # 200 * 1
f(300) = 1200 # 200 * 1 + (300-200) * 10
由于这个系列很大,而且被多次调用,我希望能将其转换为一种形式,在这种形式下,我可以使用Numpy的interp
或piecewise
或Pandasinterpolate
来提高速度,而不是构建for
循环
我认为^{inf
?也许有更干净的方法
根据需要定义成本函数
通过选择使用
np.piecewise
,您只需将成本斜率间隔指定为condlist
,并将相应的线性函数表达式指定为funclist
,如:使用给定点验证实现的正确性,如下所示:
它在更大范围内绘制,比如说
x = np.linspace(-500,500,2000)
,最后给出:希望这有帮助
相关问题 更多 >
编程相关推荐