我在使用 scipy.interpolate.CubicSpline 函数时遇到问题。这是我的代码:
CS1 = CubicSpline(T,A,bc_type='not-a-knot',extrapolate=bool, axis=1)
结果:CS1 =
[-8.34442117e+03 -6.94866126e+03 -5.71682333e+03 -4.63872647e+03
-3.70418976e+03 -2.90303229e+03 -2.22507315e+03 -1.66013142e+03
-1.19802617e+03 -8.28576513e+02 -5.41601516e+02 -3.26920268e+02
-1.74351855e+02 -7.37153621e+01 -1.48298738e+01 1.24855245e+01
1.84117475e+01 1.31297102e+01 6.82032749e+00 9.66451413e+00
3.15397607e+01 7.05279383e+01 1.09387991e+02 1.32530056e+02
1.36799756e+02 1.22858734e+02 9.60947464e+01 6.66210660e+01
4.28224903e+01 2.64229282e+01 1.75832317e+01 1.45176021e+01
1.39435432e+01 1.33609464e+01 1.23801442e+01 1.09650786e+01
9.27738095e+00 7.59606003e+00 6.29249366e+00 5.91452686e+00
6.79882387e+00 7.57144653e+00 6.13515774e+00 2.70590543e+00
9.34668162e-01 3.86336659e+00 9.73615276e+00 1.52487556e+01
1.90469811e+01 2.20000000e+01]
有负值,我觉得很奇怪,因为原始数据只是正值:
[7.0,
12.0,
20.0,
111.0,
132.0,
68.0,
22.0,
14.0,
12.0,
8.0,
6.0,
7.0,
1.0,
13.0,
22.0,
23.0,
5.0,
3.0,
5.0,
65.0,
236.0,
234.0,
105.0,
152.0,
466.0,
401.0,
157.0,
51.0,
21.0,
13.0,
11.0,
19.0,
15.0,
11.0,
9.0,
15.0,
86.0,
276.0,
423.0,
291.0,
108.0,
36.0,
22.0,
21.0,
16.0,
16.0,
13.0,
9.0]
而T只是一个从1到48一个接一个的列表(48是A和T的长度)我觉得问题出在边界问题上但问题只是在开始……
有任何想法吗 ?