繁体   English   中英

scipy.interpolate中的三次样条函数返回numpy.ndarray

[英]Cubic Spline function in scipy.interpolate returns a numpy.ndarray

我需要使用CubicSpline在点之间进行插值。 这是我的职责

cs = CubicSpline(aTime, aControl)
u = cs(t)   # u is a ndarray of one element.

我不能转换u为float。 uu = float(u)uu = float(u[0])在该函数中不起作用。 我可以通过float(u)u转换为shell中的float(u) 这不起作用,因为我没有提供索引,但是如果我使用u[0]会收到错误消息。 我已经阅读了有关np.squeeze 我尝试过,但没有帮助。

我在u=cs(t)之后添加了一条print ("u=",u)语句。 结果是

u= [  1.88006889e+09   5.39398193e-01   5.39398193e-01]

怎么会这样? 我希望有1个值。 第二和第三个数字看起来正确。

我发现了问题。 编程错误,当然,但是我收到的错误消息非常令人误解。 我正在用3个值调用插值函数,因此它返回了三个值。 为什么后来我不能只得到一个仍然是个谜,但是现在我只用一个值调用插值,就得到了一个预期的浮点数。 总体而言,这仍然没有帮助,因为interpolate1d函数太慢。 我编写了自己的三次插值函数,速度更快。

再次,编程错误和错误消息是问题所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM