gpt4 book ai didi

python - 如果我想要空插值(分段常数),numpy.interp 的最佳替代品是什么?

转载 作者:太空狗 更新时间:2023-10-30 00:11:40 27 4
gpt4 key购买 nike

numpy.interp 很方便,也比较快。在某些情况下,我想将其输出与传播稀疏值的非插值变体(在“更密集”的输出中)进行比较,结果在稀疏输入之间是分段常数。我想要的函数也可以称为“稀疏 -> 密集”转换器,它复制最新的稀疏值,直到它找到一个后来的值(一种空插值,就好像零时间/距离已经从早期的值过去了)。

不幸的是,调整 numpy.interp 的源代码并不容易,因为它只是编译函数的包装器。我可以使用 Python 循环自己写这个,但希望找到一个 C 速度的方法来解决这个问题。

更新:下面的解决方案(scipy.interpolate.interp1d with kind='zero')非常慢,需要超过 10每次通话的秒数(例如,输入 500k 的长度占 50%)。它使用零阶样条实现 kind='zero' 并且调用 spleval 非常慢。但是,kind='linear' 的源代码(即默认插值)提供了一个很好的模板来解决使用直接 numpy 的问题(最小的变化是设置 slope=0 ).该代码显示了如何使用 numpy.searchsorted 来解决问题,运行时类似于调用 numpy.interp,因此通过调整 scipy 解决了问题。 interpolate.interp1d 实现线性插值以跳过插值步骤(斜率!= 0 混合相邻值)。

最佳答案

scipy.interpolate.interp1d 可以进行各种插值:‘linear’、‘nearest’、‘zero’、‘slinear’、‘quadratic’、‘cubic’。

请查看文档:http://docs.scipy.org/doc/scipy-0.10.1/reference/generated/scipy.interpolate.interp1d.html#scipy.interpolate.interp1d

关于python - 如果我想要空插值(分段常数),numpy.interp 的最佳替代品是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com