Python 寻找相关数据集的比例因子
我有两个数据集,来自两个来源,输出一个信号,我想找出两者之间的因素。 它们在x和y上有不同的分辨率,而且一组比另一组噪音更大 下面给出了一个简单的近似值,尽管实际数据并不遵循易于拟合的多项式Python 寻找相关数据集的比例因子,python,numpy,scipy,interpolation,data-fitting,Python,Numpy,Scipy,Interpolation,Data Fitting,我有两个数据集,来自两个来源,输出一个信号,我想找出两者之间的因素。 它们在x和y上有不同的分辨率,而且一组比另一组噪音更大 下面给出了一个简单的近似值,尽管实际数据并不遵循易于拟合的多项式 import numpy as np import matplotlib.pyplot as plt datax1 = np.linspace(0,100,1000) datay1 = np.around(datax1,-1)**2 datax2 = np.linspace(0,100,80)+np.r
import numpy as np
import matplotlib.pyplot as plt
datax1 = np.linspace(0,100,1000)
datay1 = np.around(datax1,-1)**2
datax2 = np.linspace(0,100,80)+np.random.normal(0,0.2,80)
datay2 = (datax2**2)*np.random.normal(5,0.5)+np.random.normal(0,500,80)
plt.title('Data 1 VS Data 2')
plt.plot(datax1,datay1,'b',label='Data 1')
plt.plot(datax2,datay2,'r',label='Data 2')
plt.legend()
plt.savefig('img.png', bbox_inches='tight', dpi=72)
我需要自动找到这个因素,因为我有更多的数据集要分析,但是SciPy的curve\u fit
不能很好地使用interpolate
as
import scipy.optimize as opt
import scipy.interpolate as interp
def func(x,k):
fun=interp(datax1,datay1*k)
return fun(x)
print opt.curve_fit(func,datax2,datay2)
仅返回TypeError:“module”对象在fun
有没有办法用numpy或scipy实现这一点,或者我必须构建自己的最小二乘函数来找到数据的缩放比例?这并不是说curve\u fit
不能很好地处理interpolate
,而是您试图像调用函数一样调用模块。不管曲线拟合如何,你知道怎么做插值吗?老实说,我找到的所有文档都使用插值,比如函数,例如示例和绘图,所以我想应该是这样的,我没有使用正确的子类,这就是为什么什么都不起作用。。。facepalmscipy.interpolate
是包含所有插值内容的模块。您需要从scipy.interpolate import interp1d执行类似于的操作并使用它。(假设interp1d
是适合您的正确例程…还有其他例程。)是的,就是这样。谢谢。curve\u fit
并不是因为interpolate
不能很好地处理,而是您试图像函数一样调用模块。不管曲线拟合如何,你知道怎么做插值吗?老实说,我找到的所有文档都使用插值,比如函数,例如示例和绘图,所以我想应该是这样的,我没有使用正确的子类,这就是为什么什么都不起作用。。。facepalmscipy.interpolate
是包含所有插值内容的模块。您需要从scipy.interpolate import interp1d执行类似于的操作并使用它。(假设interp1d
是您的正确程序……还有其他程序。)是的,就是这个。谢谢