flopscope.numpy.corrcoef
fnp.corrcoef(x, y=None, rowvar=True, bias=<no value>, ddof=<no value>, *, dtype=None)[flopscope source][numpy source]
Return Pearson product-moment correlation coefficients.
Adapted from NumPy docs np.corrcoef
Pearson correlation coefficients.
Please refer to the documentation for cov for more detail. The
relationship between the correlation coefficient matrix, R, and the
covariance matrix, C, is
The values of R are between -1 and 1, inclusive.
Parameters
- x:array_like
A 1-D or 2-D array containing multiple variables and observations. Each row of
xrepresents a variable, and each column a single observation of all those variables. Also seerowvarbelow.- y:array_like, optional
An additional set of variables and observations.
yhas the same shape asx.- rowvar:bool, optional
If
rowvaris True (default), then each row represents a variable, with observations in the columns. Otherwise, the relationship is transposed: each column represents a variable, while the rows contain observations.- bias:_NoValue, optional
Has no effect, do not use.
Deprecated since 1.10.0.- ddof:_NoValue, optional
Has no effect, do not use.
Deprecated since 1.10.0.- dtype:data-type, optional
Data-type of the result. By default, the return data-type will have at least flops.float64 precision.
Added in version 1.20.
Returns
- R:ndarray
The correlation coefficient matrix of the variables.
See also
- we.flops.cov Covariance matrix
Notes
Due to floating point rounding the resulting array may not be Hermitian, the diagonal elements may not be 1, and the elements may not satisfy the inequality abs(a) <= 1. The real and imaginary parts are clipped to the interval [-1, 1] in an attempt to improve on that situation but is not much help in the complex case.
This function accepts but discards arguments bias and ddof. This is
for backwards compatibility with previous versions of this function. These
arguments had no effect on the return values of the function and can be
safely ignored in this and previous versions of numpy.
Examples
>>> import flopscope.numpy as fnpIn this example we generate two random arrays, xarr and yarr, and
compute the row-wise and column-wise Pearson correlation coefficients,
R. Since rowvar is true by default, we first find the row-wise
Pearson correlation coefficients between the variables of xarr.
>>> import flopscope.numpy as fnp
>>> rng = flops.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 = flops.corrcoef(xarr)
>>> R1
array([[ 1. , 0.99256089, -0.68080986],
[ 0.99256089, 1. , -0.76492172],
[-0.68080986, -0.76492172, 1. ]])If we add another set of variables and observations yarr, we can
compute the row-wise Pearson correlation coefficients between the
variables in xarr and 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 = flops.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. ]])Finally if we use the option rowvar=False, the columns are now
being treated as the variables and we will find the column-wise Pearson
correlation coefficients between variables in xarr and yarr.
>>> R3 = flops.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. ]])