Skip to main content
 首页 » 编程设计

python之大小为 (100, 1) 和 (100,) 的 numpy 数组有什么区别

2025年05月04日19jackei

我有两个来自不同函数的变量,第一个 a 是:

<class 'numpy.ndarray'> 
(100,) 

而另一个 b 是:

<class 'numpy.ndarray'> 
(100, 1) 

如果我尝试通过以下方式关联它们:

from scipy.stats import pearsonr 
p, r= pearsonr(a, b) 

我得到:

    r = max(min(r, 1.0), -1.0) 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

我的问题是:

  1. a 和 b 有什么区别?
  2. 我该如何解决这个问题?

请您参考如下方法:

(100,1) 是长度为 1 的二维数组,例如 = [[1],[2],[3],[4]],第二个是一维数组 [1, 2, 3, 4 ]

a1 = np.array([[1],[2],[3],[4]]) 
a2 = np.array([1, 2, 3, 4 ])