【问题标题】:Cubic Spline function in scipy.interpolate returns a numpy.ndarrayscipy.interpolate 中的三次样条函数返回一个 numpy.ndarray
【发布时间】:2018-06-10 10:36:40
【问题描述】:

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

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

我无法将u 转换为浮点数。 uu = float(u)uu = float(u[0]) 在函数中不起作用。 我可以通过float(u)u 转换为shell 中的浮点数。这应该不起作用,因为我没有提供索引,但是如果我使用 u[0] 会出现错误。 我读过一些关于np.squeeze 的内容。我试过了,但没有用。

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

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

这怎么可能?我期望 1 个值。第二个和第三个数字看起来差不多。

【问题讨论】:

标签: python scipy interpolation


【解决方案1】:

我发现了问题。当然是编程错误,但我收到的错误消息非常具有误导性。我用 3 个值调用 interpolate 函数,所以它返回了三个值。为什么之后我不能只得到一个仍然是一个谜,但现在我只用一个值调用插值,我得到了一个预期的浮点数。总的来说,这仍然没有帮助,因为 interpolate1d 函数太慢了。我编写了自己的三次插值函数,速度要快得多。

同样,编程错误和糟糕的错误消息是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多