make_interp_spline(x, y[1:151])(x_smooth) ValueError: x and y are incompatible.

报错

Traceback (most recent call last):
  File "E:/Program Files/PyCharm 2019.2/GraduationDesign/LSTM.py", line 193, in <module>
    test(name, B)
  File "E:/Program Files/PyCharm 2019.2/GraduationDesign/LSTM.py", line 180, in test
    y_smooth = make_interp_spline(x, y[1:151])(x_smooth)
  File "F:\Anaconda3\lib\site-packages\scipy\interpolate\_bsplines.py", line 795, in make_interp_spline
    raise ValueError('x and y are incompatible.')
ValueError: x and y are incompatible.

解决

原文中相应代码为:

x = [i for i in range(1, 151)]
x_smooth = np.linspace(np.min(x), np.max(x), 900)
y_smooth = make_interp_spline(x, y[150:300])(x_smooth)

报错提示x and y are incompatible,很显然不是指x和y的长度不一致,而是指shape不一致:y的shape为(150, 1),需要对其进行转置:

y_smooth = make_interp_spline(x, y.T[150:300])(x_smooth)

你可能感兴趣的:(Python,python,插值,spline)