- 积分
- 2342
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-7-15
- 最后登录
- 1970-1-1
|
发表于 2021-6-22 11:21:07
|
显示全部楼层
记录一个测试时出现的问题:计算回归系数pre_reg = np.linalg.lstsq(A, pre2d)[0][0].reshape(len(lat),len(lon))的时候报错了,
LinAlgError Traceback (most recent call last)<ipython-input-55-3254dcae7c93> in <module> 30 ## 回归系数 31 A = np.vstack([pc, np.ones(len(pc))]).T---> 32 pre_reg = np.linalg.lstsq(A, pre2d)[0][0].reshape(len(lat),len(lon)) 33 34 ## 相关系数<__array_function__ internals> in lstsq(*args, **kwargs)D:\anaconda3\lib\site-packages\numpy\linalg\linalg.py in lstsq(a, b, rcond) 2304 # lapack can't handle n_rhs = 0 - so allocate the array one larger in that axis 2305 b = zeros(b.shape[:-2] + (m, n_rhs + 1), dtype=b.dtype)-> 2306 x, resids, rank, s = gufunc(a, b, rcond, signature=signature, extobj=extobj) 2307 if m == 0: 2308 x[...] = 0D:\anaconda3\lib\site-packages\numpy\linalg\linalg.py in _raise_linalgerror_lstsq(err, flag) 98 99 def _raise_linalgerror_lstsq(err, flag):--> 100 raise LinAlgError("SVD did not converge in Linear Least Squares") 101 102 def get_linalg_error_extobj(callback):LinAlgError: SVD did not converge in Linear Least Squares
找了很久发现是numpy版本问题,原来使用的是1.19.2,升级为1.19.3之后就没有报错了,其他版本没有测试过
|
|