【发布时间】:2021-03-05 10:21:21
【问题描述】:
我的 Hessian(2x2 矩阵)如下所示:
Hessian1
[[array([[ -400451.22705586, -1472873.29657509, -1353698.36178183],
[-1472873.29657509, -5425857.74291764, -4978945.85451078],
[-1353698.36178183, -4978945.85451078, -4591731.95233015]]),
array([[-2.51920250e-07],
[-9.37914803e-07],
[-4.97061494e-07]])],
[array([[-2.51920250e-07, -9.37914803e-07, -4.97061494e-07]]),
array([[-1600445.78266049]])]]
也就是说,它是一个 2x2 矩阵,其第一个元素 (1,1) 为 3x3 矩阵,第二个元素 (1,2) 为 3x1 矩阵,依此类推。
现在我想取这个矩阵的逆。
np.linalg.inv(Hessian1)
但我收到以下错误消息:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-33-d820d7b5b57d> in <module>
----> 1 np.linalg.inv(Hessian1)
<__array_function__ internals> in inv(*args, **kwargs)
~\anaconda3\lib\site-packages\numpy\linalg\linalg.py in inv(a)
545 signature = 'D->D' if isComplexType(t) else 'd->d'
546 extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
--> 547 ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
548 return wrap(ainv.astype(result_t, copy=False))
549
TypeError: No loop matching the specified signature and casting was found for ufunc inv
我不明白这个消息,因为我没有循环。有人可以帮我得到逆吗?
【问题讨论】:
标签: python numpy matrix error-handling matrix-inverse