掌握Python Numpy库:深入理解np.corrcoef()函数
本文深入解析了Python Numpy库中的np.corrcoef()函数,通过实例展示了如何计算矩阵间的相关系数。文章首先导入numpy库,然后创建两个矩阵Array1和Array2,通过np.array()函数转换为Numpy数组。接着,使用np.corrcoef()函数计算并展示两个矩阵的相关系数矩阵,结果表明矩阵的对角线元素(自相关)为1,其他元素则表示不同行数据间的相关性。此教程适合希望提升数据处理能力的Python开发者。
核心内容提要:如何在Python中使用np.corrcoef()、Numpy相关系数计算示例、Python矩阵相关性分析、数据科学中的Numpy应用、数学计算中的Python Numpy库
numpy.corrcoef方法详解
numpy.corrcoef(x, y=无, rowvar=True, 偏差=<无值>, ddof=<无值>)
返回Pearson乘积矩相关系数。
cov
有关更多详细信息,请参阅文档。相关系数矩阵R和协方差矩阵C之间的关系是
R的值在-1和1之间,包括-1和1。
参数
x
:array_like
包含多个变量和观测值的1-D或2-D数组。x的每一行代表一个变量,每一列都是对所有这些变量的单一观察。另见下面的rowvar
。y
:array_like
, 可选
另外一组变量和观察。y具有与x相同的形状。rowvar
:bool
, 可选
如果rowvar
为True
(默认值),则每行代表一个变量,并在列中显示。否则,转换关系:每列代表一个变量,而行包含观察。偏见
:_NoValue
, 可选
没有效果,请勿使用。自1.10.0版开始不推荐使用。ddof
:_NoValue
, 可选
没有效果,请勿使用。自1.10.0版开始不推荐使用。
返回
R
:ndarray
变量的相关系数矩阵。
以下是文章的Markdown格式输出,包括文字和公式内容:
例子:
代码:
import numpy as np
Array1 = [[1, 2, 3], [4, 5, 6]]
Array2 = [[11, 25, 346], [734, 48, 49]]
Mat1 = np.array(Array1)
Mat2 = np.array(Array2)
correlation = np.corrcoef(Mat1, Mat2)
print("矩阵1=\n", Mat1)
print("矩阵2=\n", Mat2)
print("相关系数矩阵=\n", correlation)
结果:
矩阵1=
[[1 2 3]
[4 5 6]]
矩阵2=
[[ 11 25 346]
[734 48 49]]
相关系数矩阵=
[[ 1. 1. 0.88390399 -0.86539304]
[ 1. 1. 0.88390399 -0.86539304]
[ 0.88390399 0.88390399 1. -0.53057867]
[-0.86539304 -0.86539304 -0.53057867 1. ]]
Process finished with exit code 0
可以看出函数的返回值还是一个矩阵,结果矩阵的行数结果矩阵的列数==矩阵1的行数矩阵2的行数。
令:
0=[1 2 3] 1=[4 5 6] 2=[11 25 346] 3=[734 48 49]
矩阵中值的意义:
0列 1列 2列 3列
0行 0 0 相关性 0 1 相关性 0 2 相关性 0 3 相关性
1行 1 0 相关性 1 1 相关性 1 2 相关性 1 3 相关性
2行 2 0 相关性 2 1 相关性 2 2 相关性 2 3 相关性
3行 3 0 相关性 3 1 相关性 3 2 相关性 3 3 相关性
自己和自己的相关性最大,值为1,所以对角线的值全为1。
矩阵A =
矩阵B =
A[i]A[j] 表示矩阵A第i行数据与矩阵A第j行数据间的相关性;
A[i]B[j] 表示矩阵A第i行数据与矩阵B第j行数据间的相关性;
B[i]A[j] 表示矩阵B第i行数据与矩阵A第j行数据间的相关性;
B[i]B[j] 表示矩阵B第i行数据与矩阵B第j行数据间的相关性;
A[i]A[i] == B[i]B[i] == 1 自己和自己的相关性为1
nd.corrcoef(A, B) =