dask.array.corrcoef
dask.array.corrcoef¶
- dask.array.corrcoef(x, y=None, rowvar=1)[源代码]¶
返回皮尔逊积矩相关系数。
此文档字符串是从 numpy.corrcoef 复制的。
Dask 版本可能存在一些不一致性。
更多详情请参阅 cov 的文档。相关系数矩阵 R 和协方差矩阵 C 之间的关系是
\[R_{ij} = \frac{ C_{ij} } { \sqrt{ C_{ii} C_{jj} } }\]R 的值在 -1 到 1 之间,包括 -1 和 1。
- 参数
- xarray_like
一个包含多个变量和观测值的1维或2维数组。x 的每一行代表一个变量,每一列代表所有这些变量的一个单独观测值。另见下面的 rowvar。
- y类似数组, 可选
一组额外的变量和观测值。y 与 x 具有相同的形状。
- rowvarbool, 可选
如果 rowvar 为 True(默认),那么每一行代表一个变量,观察值在列中。否则,关系被转置:每一列代表一个变量,而行包含观察值。
- 偏见_NoValue, 可选 (Dask 不支持)
无效,请勿使用。
1.10.0 版后已移除.
- ddof_NoValue, 可选 (Dask 不支持)
无效,请勿使用。
1.10.0 版后已移除.
- dtype数据类型, 可选 (在Dask中不支持)
结果的数据类型。默认情况下,返回的数据类型将至少具有 numpy.float64 精度。
1.20 新版功能.
- 返回
- Rndarray
变量的相关系数矩阵。
参见
cov
协方差矩阵
注释
由于浮点数舍入,生成的数组可能不是厄米特矩阵,对角元素可能不是1,并且元素可能不满足不等式 abs(a) <= 1。实部和虚部被裁剪到区间 [-1, 1] 以尝试改善这种情况,但在复数情况下帮助不大。
此函数接受但忽略参数 bias 和 ddof。这是为了与该函数先前版本的向后兼容性。这些参数对函数的返回值没有影响,可以在此版本和先前版本的 numpy 中安全地忽略。
示例
>>> import numpy as np
在这个例子中,我们生成了两个随机数组,
xarr
和yarr
,并计算了行向和列向的皮尔逊相关系数,R
。由于rowvar
默认是 true,我们首先找到xarr
变量之间的行向皮尔逊相关系数。>>> import numpy as np >>> rng = np.random.default_rng(seed=42) >>> xarr = rng.random((3, 3)) >>> xarr array([[0.77395605, 0.43887844, 0.85859792], [0.69736803, 0.09417735, 0.97562235], [0.7611397 , 0.78606431, 0.12811363]]) >>> R1 = np.corrcoef(xarr) >>> R1 array([[ 1. , 0.99256089, -0.68080986], [ 0.99256089, 1. , -0.76492172], [-0.68080986, -0.76492172, 1. ]])
如果我们添加另一组变量和观测值
yarr
,我们可以计算xarr
和yarr
中变量之间的行方向皮尔逊相关系数。>>> yarr = rng.random((3, 3)) >>> yarr array([[0.45038594, 0.37079802, 0.92676499], [0.64386512, 0.82276161, 0.4434142 ], [0.22723872, 0.55458479, 0.06381726]]) >>> R2 = np.corrcoef(xarr, yarr) >>> R2 array([[ 1. , 0.99256089, -0.68080986, 0.75008178, -0.934284 , -0.99004057], [ 0.99256089, 1. , -0.76492172, 0.82502011, -0.97074098, -0.99981569], [-0.68080986, -0.76492172, 1. , -0.99507202, 0.89721355, 0.77714685], [ 0.75008178, 0.82502011, -0.99507202, 1. , -0.93657855, -0.83571711], [-0.934284 , -0.97074098, 0.89721355, -0.93657855, 1. , 0.97517215], [-0.99004057, -0.99981569, 0.77714685, -0.83571711, 0.97517215, 1. ]])
最后,如果我们使用选项
rowvar=False
,列现在被视为变量,我们将在xarr
和yarr
的变量之间找到列方向的皮尔逊相关系数。>>> R3 = np.corrcoef(xarr, yarr, rowvar=False) >>> R3 array([[ 1. , 0.77598074, -0.47458546, -0.75078643, -0.9665554 , 0.22423734], [ 0.77598074, 1. , -0.92346708, -0.99923895, -0.58826587, -0.44069024], [-0.47458546, -0.92346708, 1. , 0.93773029, 0.23297648, 0.75137473], [-0.75078643, -0.99923895, 0.93773029, 1. , 0.55627469, 0.47536961], [-0.9665554 , -0.58826587, 0.23297648, 0.55627469, 1. , -0.46666491], [ 0.22423734, -0.44069024, 0.75137473, 0.47536961, -0.46666491, 1. ]])