计算皮尔逊相关系数并进行排序代码
时间: 2023-07-04 17:24:14 浏览: 100
皮尔逊相关系数
5星 · 资源好评率100%
好的,下面是 Python 代码,可以计算皮尔逊相关系数并进行排序:
```python
import numpy as np
# 定义函数计算皮尔逊相关系数
def pearson_corr(x, y):
x_mean, y_mean = np.mean(x), np.mean(y)
x_std, y_std = np.std(x), np.std(y)
corr = np.mean((x - x_mean) * (y - y_mean)) / (x_std * y_std)
return corr
# 定义数据
data = np.array([[1, 2, 3, 4, 5],
[2, 4, 6, 8, 10],
[3, 6, 9, 12, 15],
[4, 8, 12, 16, 20]])
# 计算皮尔逊相关系数并排序
corr_dict = {}
for i in range(data.shape[0]):
for j in range(i+1, data.shape[0]):
corr = pearson_corr(data[i], data[j])
corr_dict[(i,j)] = corr
corr_sorted = sorted(corr_dict.items(), key=lambda x: x[1], reverse=True)
# 输出排序结果
print("排序结果:")
for (i, j), corr in corr_sorted:
print(f"数据{i}和数据{j}的皮尔逊相关系数为:{corr}")
```
这段代码中,我们先定义了一个函数 `pearson_corr`,用于计算两个向量的皮尔逊相关系数。然后,我们定义了一个数据矩阵 `data`,其中每一行是一个向量。接着,我们使用两层循环遍历所有的数据对,计算它们之间的皮尔逊相关系数,并将结果存储在字典 `corr_dict` 中。
最后,我们使用 `sorted` 函数对 `corr_dict` 进行排序,并将结果输出。输出结果中,每一行表示一个数据对及它们之间的皮尔逊相关系数。
阅读全文