【发布时间】:2020-02-05 20:02:30
【问题描述】:
我有许多大熊猫系列的“成本斜率”,它们代表一个线性函数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 或 Pandas interpolate 来提高速度而不是构建 for 循环的形式。
我认为piecewise 可能是解决方案,但我不确定如何转换和处理inf?也许有更清洁的方法?
【问题讨论】:
标签: python pandas numpy linear-interpolation piecewise