gpt4 book ai didi

python - 为什么 np.corrcoef(x) 和 df.corr() 给出不同的结果?

转载 作者:行者123 更新时间:2023-12-04 15:07:02 24 4
gpt4 key购买 nike

为什么使用 np.corrcoef(x) 和 df.corr() 时 numpy 相关系数矩阵和 Pandas 相关系数矩阵不同?

x = np.array([[0, 2, 7], [1, 1, 9], [2, 0, 13]]).T
x_df = pd.DataFrame(x)
print("matrix:")
print(x)
print()
print("df:")
print(x_df)
print()

print("np correlation matrix: ")
print(np.corrcoef(x))
print()
print("pd correlation matrix: ")

print(x_df.corr())
print()
给我输出
matrix:
[[ 0 1 2]
[ 2 1 0]
[ 7 9 13]]

df:
0 1 2
0 0 1 2
1 2 1 0
2 7 9 13

np correlation matrix:
[[ 1. -1. 0.98198051]
[-1. 1. -0.98198051]
[ 0.98198051 -0.98198051 1. ]]

pd correlation matrix:
0 1 2
0 1.000000 0.960769 0.911293
1 0.960769 1.000000 0.989743
2 0.911293 0.989743 1.000000
我猜它们是不同类型的相关系数?

最佳答案

@AlexAlex 是对的,您在相关系数中采用了一组不同的数字。
在 2x3 矩阵中考虑它

x = np.array([[0, 2, 7], [1, 1, 9]])
np.corrcoef(yx)
array([[1.        , 0.96076892],
[0.96076892, 1. ]])
x_df = pd.DataFrame(yx.T)
print(x_df)
x_df[0].corr(x_df[1])
   0  1
0 0 1
1 2 1
2 7 9

0.9607689228305227
其中 0.9607... 等数字与 NumPy 计算的输出匹配。
如果按照计算方式进行,则相当于比较行的相关性而不是列的相关性。您可以使用 .T 修复 NumPy 版本或参数 rowvar=False

关于python - 为什么 np.corrcoef(x) 和 df.corr() 给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65928018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com