Я пытаюсь выполнить BSpline, используя Scipy для моего набора данных, но продолжаю получать nans в качестве вывода параметра c. Я не понимаю этого поведения, так как мои данные кажутся в порядке.
Это мой код:
import numpy as np
import scipy.interpolate as interpolate
import matplotlib.pyplot as plt
x = np.array(colA1)
y = np.array(ypred1)
print (x)
print (y)
t, c, k = interpolate.splrep(x, y, s=0, k=1)
print('''\
t: {}
c: {}
k: {}
'''.format(t, c, k))
N = 100
xmin, xmax = x.min(), x.max()
xx = np.linspace(xmin, xmax, N)
spline = interpolate.BSpline(t, c, k, extrapolate=False)
plt.plot(x, y, 'bo', label='Original points')
plt.plot(xx, spline(xx), 'r', label='BSpline')
plt.grid()
plt.legend(loc='best');
И это мой вывод:
[ 7. 31. 55. 56. 62. 66. 76. 81. 84. 86. 94. 96. 103. 106.
110. 119. 127. 133. 135. 139. 141. 146. 151. 155. 156. 158. 161. 162.
167. 167. 169. 171. 174. 176. 179. 185. 186. 186. 190. 191. 191. 192.
197. 198. 199. 201. 205. 206. 206. 215. 216. 221. 221. 222. 223. 229.
235.]
[-5.56840730e-03 -1.09063303e-01 -5.18741553e-02 -5.30458383e-02
-6.69730163e-02 -7.21759072e-02 -5.61977049e-02 -3.21943733e-02
-1.79832190e-02 -1.13895725e-02 -4.01512043e-03 -4.61596093e-03
-5.70053994e-03 1.84927579e-04 2.44232395e-02 1.49518662e-01
2.98598127e-01 3.98777453e-01 4.22128667e-01 4.60772442e-01
4.79260764e-01 5.27180679e-01 5.76179399e-01 6.13575074e-01
6.22486031e-01 6.39749778e-01 6.64065552e-01 6.71587189e-01
6.99728926e-01 6.99728926e-01 7.03625901e-01 7.02150823e-01
6.90948695e-01 6.78954973e-01 6.56363959e-01 6.01324552e-01
5.91505034e-01 5.91505034e-01 5.51537498e-01 5.41426721e-01
5.41426721e-01 5.31289686e-01 4.80407198e-01 4.70057384e-01
4.59503106e-01 4.37282983e-01 3.84402208e-01 3.68862989e-01
3.68862989e-01 2.02192928e-01 1.83278406e-01 1.03392613e-01
1.03392613e-01 9.24577049e-02 8.37138977e-02 6.77467636e-02
6.89757619e-02]
t: [ 7. 7. 31. 55. 56. 62. 66. 76. 81. 84. 86. 94. 96. 103.
106. 110. 119. 127. 133. 135. 139. 141. 146. 151. 155. 156. 158. 161.
162. 167. 167. 169. 171. 174. 176. 179. 185. 186. 186. 190. 191. 191.
192. 197. 198. 199. 201. 205. 206. 206. 215. 216. 221. 221. 222. 223.
229. 235. 235.]
c: [ nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan nan nan
nan nan nan nan 0.10339261 0.0924577
0.0837139 0.06774676 0.06897576 0. 0. ]
k: 1
Сюжет выглядит так:
Что не так с моими данными?