我有两个数组,比如varx和vary.两者都包含不同位置的NAN值.但是,我想对两者进行线性回归,以显示两个数组的相关程度.到目前为止,这非常有用:http://glowingpython.blogspot.de/2012/03/linear-regression-with-numpy.html
但是,使用这个:
slope, intercept, r_value, p_value, std_err = stats.linregress(varx, vary)
Run Code Online (Sandbox Code Playgroud)
导致每个输出变量的nans.将两个数组中的有效值作为线性回归的输入的最方便的方法是什么?我听说过屏蔽数组,但我不确定它是如何工作的.
我遇到了一些我编写的非常简单的代码问题.我有4组数据,并希望使用numpy polyfit生成多项式最佳拟合线.当使用polyfit时,列表中的3个产生数量,但是当使用polyfit时,第三个数据集产生NAN.下面是代码和打印输出.有任何想法吗?
码:
ind_1=np.array(ind_1, np.float)
dep_1=np.array(dep_1, np.float)
x_1=np.arange(min(ind_1)-1, max(ind_1)+1, .01)
ind_2=np.array(ind_2, np.float)
dep_2=np.array(dep_2, np.float)
x_2=np.arange(min(ind_2)-1, max(ind_2)+1, .01)
ind_3=np.array(ind_3, np.float)
dep_3=np.array(dep_3, np.float)
x_3=np.arange(min(ind_3)-1, max(ind_3)+1, .01)
ind_4=np.array(ind_4, np.float)
dep_4=np.array(dep_4, np.float)
x_4=np.arange(min(ind_4)-1, max(ind_4)+1, .01)
Run Code Online (Sandbox Code Playgroud)
print(ind_1)
print(dep_1)
print(np.polyfit(ind_1,dep_1,2))
print(ind_2)
print(dep_2)
print(np.polyfit(ind_2,dep_2,2))
print(ind_3)
print(dep_3)
print(np.polyfit(ind_3,dep_3,2))
print(ind_4)
print(dep_4)
print(np.polyfit(ind_4,dep_4,2))
Run Code Online (Sandbox Code Playgroud)
打印:
[ 1.405 1.871 2.713 ..., 5.367 5.404 2.155]
[ 0.274 0.07 0.043 ..., 0.607 0.614 0.152]
[ 0.01391925 -0.00950728 0.14803846]
[ 0.9760001 2.067 8.8 ..., 1.301 1.625 2.007 ]
[ 0.219 0.05 0.9810001 …
Run Code Online (Sandbox Code Playgroud)