LinalError:给定了0维数组。数组必须至少是二维的

2024-05-16 21:41:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了上面的错误,错误消息抱怨0维数组

   -------------------------------------------------------------------  --------
LinAlgError                               Traceback (most recent call  last)
<ipython-input-110-2e59b52b853b> in <module>()
  8 
  9 # compute det and C_N
---> 10 const = np.sqrt(np.linalg.det((dof-2)/dof)*C_N)
 11 print(const)

<__array_function__ internals> in det(*args, **kwargs)

/anaconda3/lib/python3.6/site-packages/numpy/linalg/linalg.py in  det(a)
2110     """
2111     a = asarray(a)
-> 2112     _assert_stacked_2d(a)
2113     _assert_stacked_square(a)
2114     t, result_t = _commonType(a)

/anaconda3/lib/python3.6/site-packages/numpy/linalg/linalg.py in _assert_stacked_2d(*arrays)
205         if a.ndim < 2:
206             raise LinAlgError('%d-dimensional array given. Array  must be '
--> 207                     'at least two-dimensional' % a.ndim)
208 
209 def _assert_stacked_square(*arrays):

LinAlgError: 0-dimensional array given. Array must be at least two-dimensional

我的代码是:

import numpy as np
npts = 5000
dof  = 3
X_r = np.arange(npts)
product = X_r * X_r.transpose()  
Rowsum = [np.sum(product[i]) for i in range(npts)]
C_N = np.sum(Rowsum)/(npts - 1)

 # compute det and C_N 
const = np.sqrt(np.linalg.det(((dof-2)/dof)*C_N))
print(const)

非常感谢无畏的人,他们关心并敢于通读这一切


Tags: innumpy错误npassertarraydetcompute