小编Vla*_*mir的帖子

scipy最小二乘法中的正交回归拟合

scipy lib中的leastsq方法适合某些数据的曲线.并且此方法意味着在此数据中Y值取决于某些X参数.并计算曲线与Y轴(dy)中数据点之间的最小距离

但是如果我需要计算两个轴的最小距离(dy和dx)怎么办?

有没有办法实现这个计算?

以下是使用一个轴计算时的代码示例:

import numpy as np
from scipy.optimize import leastsq

xData = [some data...]
yData = [some data...]

def mFunc(p, x, y):
    return y - (p[0]*x**p[1])  # is takes into account only y axis

plsq, pcov = leastsq(mFunc, [1,1], args=(xData,yData))
print plsq
Run Code Online (Sandbox Code Playgroud)

我最近尝试了scipy.odr库,它只返回线性函数的正确结果.对于y = a*x ^ b等其他函数,它返回错误的结果.这就是我使用它的方式:

def f(p, x):      
    return p[0]*x**p[1]

myModel = Model(f)
myData = Data(xData, yData)
myOdr = ODR(myData, myModel , beta0=[1,1])
myOdr.set_job(fit_type=0) #if set fit_type=2, returns the same as leastsq
out = myOdr.run() …
Run Code Online (Sandbox Code Playgroud)

python regression scipy least-squares

13
推荐指数
2
解决办法
8546
查看次数

Python scipy:**或pow()不支持的操作数类型:'list'和'list'

我需要将函数拟合到数据数组并获得该函数方程的最佳系数.我使用scipy库中的curve_fit方法.它基于最小二乘法.

import numpy as np 
from scipy.optimize import curve_fit

#This is my function from which i need to get optimal coefficients 'a' and 'b'
def func(x, a, b):  
return a*x**(b*x)

#the arrays of input data                               
x = [1,2,3,4,5]
y =[6,7,8,9,10]

#default (guess) coefficients
p0 = [1, 1] 

popt, pcov = curve_fit(func, x, y, p0)
print popt
Run Code Online (Sandbox Code Playgroud)

它返回以下错误

TypeError:**或pow()不支持的操作数类型:'list'和'list'

但是,当我使用另一个更简单的功能而没有电源操作时,它可以工作

def func(x, a, b):  
return a*x + b
Run Code Online (Sandbox Code Playgroud)

它必须尝试将数字增加到整个输入数据阵列的幂

该怎么办?请帮忙...

python scipy

6
推荐指数
1
解决办法
2万
查看次数

如何使用pythonCOM将表格从excel复制到word

是否可以从excel文件中获取表格并将其粘贴到保存其excel样式的word文档中?我没有找到有关 win32com 及其所有方法的足够文档。

我找到了一个方法PasteExcelTable,我想我应该在调用这个方法之前从 excel 中选择表格。我执行以下操作:

from win32com import client
excel = client.Dispatch("Excel.Application")
word = client.Dispatch("Word.Application")
doc = word.Documents.Open("C:/word_file.docx")
book = excel.Workbooks.Open("C:/excel_file.xlsx")
sheet = book.Worksheets(1)
sheet.Range("A1:D20").Select      # Selected the table I need to copy
doc.Content.PasteExcelTable(False, False, False)
Run Code Online (Sandbox Code Playgroud)

然后它失败了。我什至不知道我是否走对了方向。

python excel ms-word win32com pythoncom

5
推荐指数
1
解决办法
6750
查看次数