Python 获取SciPy CubicsLine的中间点

Python 获取SciPy CubicsLine的中间点,python,numpy,scipy,interpolation,cubic-spline,Python,Numpy,Scipy,Interpolation,Cubic Spline,我试图在SciPy中插值后得到一个中间点数组。但似乎没有任何直接的方法可以做到这一点。有人能帮忙吗 示例代码: from scipy.interpolate import CubicSpline import matplotlib.pyplot as plt x = np.arange(10) y = np.sin(x) cs = CubicSpline(x, y) xs = np.arange(-0.5, 9.6, 0.1) plt.figure(figsize=(6.5, 4)) plt.p

我试图在SciPy中插值后得到一个中间点数组。但似乎没有任何直接的方法可以做到这一点。有人能帮忙吗

示例代码:

from scipy.interpolate import CubicSpline
import matplotlib.pyplot as plt
x = np.arange(10)
y = np.sin(x)
cs = CubicSpline(x, y)
xs = np.arange(-0.5, 9.6, 0.1)
plt.figure(figsize=(6.5, 4))
plt.plot(x, y, 'o', label='data')
plt.plot(xs, np.sin(xs), label='true')
plt.plot(xs, cs(xs), label="S")
plt.plot(xs, cs(xs, 1), label="S'")
plt.plot(xs, cs(xs, 2), label="S''")
plt.plot(xs, cs(xs, 3), label="S'''")
plt.xlim(-0.5, 9.5)
plt.legend(loc='lower left', ncol=2)
plt.show()
例如,它返回的对象是可调用的,带有参数

  • x:数组_-like
    要在处评估插入剂的点
  • nu:int,可选
    求值导数的顺序
  • 外推:{bool',periodic',None},可选
因此,
cs(5)
给出样条曲线在5处的值,而
cs(5,2)
是其在5处的二阶导数,以此类推。

因为它返回的对象是可调用的,带有参数

  • x:数组_-like
    要在处评估插入剂的点
  • nu:int,可选
    求值导数的顺序
  • 外推:{bool',periodic',None},可选

因此,
cs(5)
给出样条曲线在5处的值,而
cs(5,2)
是它在5处的二阶导数,等等。

您是否尝试调用中间值的
cs
?例如,使用
new_xs=np.arange(-0.5,9.6,0.05)
和plt.plot(new_xs,cs(new_xs))?对不起,我看到
xs
比x开头有更多的点。用三次插值法,导数不能比你得到的更精确。你想做什么?我想得到CubicBezier的值,比如
cs(5)
你试过调用中间值的
cs
?例如,使用
new_xs=np.arange(-0.5,9.6,0.05)
和plt.plot(new_xs,cs(new_xs))?对不起,我看到
xs
比x开头有更多的点。用三次插值法,导数不能比你得到的更精确。你想做什么?我想得到CubicBezier的值,比如
cs(5)