gpt4 book ai didi

python - 如何在 np.linalg.inv 函数的奇异矩阵上传递引发的错误?

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

我创建了一个奇异矩阵。

mat = np.array([[   1,    8,   50],
[ 8, 64, 400],
[ 50, 400, 2500]])

已经知道 mat 的逆的创建将引发 LinAlgError,我的目的是通过 try 传递异常和 exception过程。

所以我试过了,这个:

try:
np.linalg.inv(mat)
except LinAlgError:
print('yes')

还有这个:

try:
np.linalg.inv(mat)
except LinAlgError("Singular matrix"):
print('yes')

还有这个:

try:
np.linalg.inv(mat)
except numpy.linalg.LinAlgError:
print('yes')

多次尝试时,我总是得到相同的 stackoverflow,说我通过尝试处理第一个异常创建了一个异常 😎

Traceback (most recent call last):
File "<ipython-input-18-de9bc8aa3ed1>", line 2, in <module>
np.linalg.inv(mat)
File "C:\Users\Azerty\PycharmProjects\OptionsHedgeFund\venv37\lib\site-packages\numpy\linalg\linalg.py", line 551, in inv
ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
File "C:\Users\Azerty\PycharmProjects\OptionsHedgeFund\venv37\lib\site-packages\numpy\linalg\linalg.py", line 97, in _raise_linalgerror_singular
raise LinAlgError("Singular matrix")
numpy.linalg.LinAlgError: Singular matrix
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Azerty\PycharmProjects\OptionsHedgeFund\venv37\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-18-de9bc8aa3ed1>", line 3, in <module>
except numpy.linalg.LinAlgError:
NameError: name 'numpy' is not defined

你知道如何定义LinAlgError吗?在 exception ... :

最佳答案

您需要正确引用它,例如:

try:
np.linalg.inv(mat)
except <b>np.linalg.LinAlgError</b>:
print('yes')

上次尝试失败的原因是因为您将 numpy 库导入为 np,而不是 numpy。所以这意味着 numpy.linalg 没有意义,因为标识符 numpy 不存在。

关于python - 如何在 np.linalg.inv 函数的奇异矩阵上传递引发的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581494/

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