26

我有两个数组,比如 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)

导致每个输出变量的 nans。仅将两个数组中的有效值作为线性回归的输入的最方便的方法是什么?我听说过屏蔽数组,但不确定它是如何工作的。

4

1 回答 1

40

您可以使用掩码删除 NaN:

mask = ~np.isnan(varx) & ~np.isnan(vary)
slope, intercept, r_value, p_value, std_err = stats.linregress(varx[mask], vary[mask])
于 2012-11-30T10:34:27.720 回答