gpt4 book ai didi

python - 使用 Numpy 计算相关系数

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:04 31 4
gpt4 key购买 nike

我有一个值列表和一个一维 numpy 数组,我想使用 numpy.corrcoef(x,y,rowvar=0) 计算相关系数。我收到以下错误:

Traceback (most recent call last):
File "testLearner.py", line 25, in <module>
corr = np.corrcoef(valuesToCompare,queryOutput,rowvar=0)
File "/usr/local/lib/python2.6/site-packages/numpy/lib/function_base.py", line 2003, in corrcoef
c = cov(x, y, rowvar, bias, ddof)
File "/usr/local/lib/python2.6/site-packages/numpy/lib/function_base.py", line 1935, in cov
X = concatenate((X,y), axis)
ValueError: array dimensions must agree except for d_0

我打印出我的 numpy 数组的形状并得到 (400,1)。当我使用 numpy.asarray(y) 将列表转换为数组时,我得到了 (400,)!

我相信这就是问题所在。我对 (400,1) 进行了 array.reshape 并打印出形状,我仍然得到 (400,)。我错过了什么?

提前致谢。

最佳答案

我想您可能已经假设 reshape修改原始数组的值。它不会:

>>> a = np.random.randn(5)
>>> a.shape
(5,)
>>> b = a.reshape(5,1)
>>> b.shape
(5, 1)
>>> a.shape
(5,)

np.asarray将常规列表视为 1d 数组,但您所说的原始 numpy 数组是 1d 实际上是 2d(因为它的形状是 (400,1) )。如果您想像使用二维数组一样使用列表,有两种简单的方法:

  • np.asarray(lst).reshape((-1, 1))-1意味着该维度“无论它需要多少”。
  • np.asarray([lst]).T.T表示数组转置,从(1,5)切换至 (5,1) .-

您还可以通过 ary.reshape((-1,)) 将原始数组 reshape 为 1d .

关于python - 使用 Numpy 计算相关系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989719/

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