特定の関数をscipyに適合させようとしていたところ、奇妙な結果が得られました。答えがわかっているものをテストすることにしたので、これを作成しました。
from scipy.optimize import curve_fit as cf
import numpy as np
import random
def func(x,a):
return a+X
X =[]
for i in range (10):
V = random.random()
X.append(i+3 + V/10)
print cf(func, np.array(range(10)),np.array(X))
私は約3を取得することを期待していましたが、それでも、ここでの出力は次のとおりです。
(array([ -2.18158824e-12]), inf)
ちなみに、私は自分が何を送信するかを確認しようとしましたfunc
が、これを取得しました。
print func(np.array(range(10)),3)
Traceback (most recent call last):
File "/tmp/py1759O-P", line 16, in <module>
print func(np.array(range(10)),3)
File "/tmp/py1759O-P", line 6, in func
return a+X
TypeError: unsupported operand type(s) for +: 'int' and 'list
私は何が間違っているのですか?