curve_fit在我继续讨论更复杂的问题之前,我正试图用一个简单的正弦波(甚至没有任何噪声)作为测试.不幸的是,它甚至没有给出正确的答案.这是我的语法:
x = linspace(0,100,300)
y = sin(1.759*x)
def mysine(x, a):
return sin(a*x)
popt, pcov = curve_fit(mysine, x, y)
popt
array([ 0.98679056])
Run Code Online (Sandbox Code Playgroud)
如果我尝试初始猜测(比如1.5):
popt, pcov = curve_fit(mysine, x, y, p0=1.5)
popt
array([ 1.49153365])
Run Code Online (Sandbox Code Playgroud)
......仍然没有正确的答案.
我想我很惊讶,鉴于函数的采样效果如何,拟合效果不佳.
我是numpy的新手,我很难将CSV读入带有genfromtxt的numpy数组.
我在网上找到了一个我正在使用的CSV文件作为示例.它是浮子和弦的混合物.它在这里:http://pastebin.com/fMdRjRMv
我正在使用numpy通过pylab(通过:ipython -pylab在Ubuntu系统上初始化).numpy.version.version是1.3.0.
这是我做的:
示例#1:
data = genfromtxt("fMdRjRMv.txt", delimiter=',', dtype=None)
data.shape
(374, 15)
data[10,10] ## Take a look at an example element
'30'
type(data[10,10])
type 'numpy.string_'
Run Code Online (Sandbox Code Playgroud)
CSV文件中没有错误的引号,所以我不知道为什么它应该认为该数字是一个字符串.有谁知道为什么会这样?
示例#2(跳过第一行):
data = genfromtxt("fMdRjRMv.txt",delimiter =',',dtype = None,skiprows = 1)
data.shape
(373)
有谁知道为什么它不能将所有这些都读成一维数组?
非常感谢!