我有一个字典,它的值是矩阵。我想反转这些矩阵,但其中一些是奇异的,因此我在运行程序时抛出Singular matrix
错误。下面是一个最小可重复的例子:
import numpy as np
N = 10
x = np.arange(N)
def matrix(z):
return np.array([[z*(z+1), z*(z+2)], [(z+2)*(z+3), (z+3)*(z+4)]])
example_dict = dict(zip(map(str,x), map(matrix, x)))
{k:np.linalg.inv(v) for k,v in example_dict.items()}
字符串
错误消息为:
raise LinAlgError("Singular matrix")
numpy.linalg.LinAlgError: Singular matrix
型
有没有一种方法可以在一行代码中纠正这个问题?我可以将代码重写为完整的for
循环块并捕获它,但我正在寻找一个更优雅的解决方案。
1条答案
按热度按时间jyztefdp1#
如果你说的“优雅”是指解析,那么你想要的特性在十年前就被拒绝了:https://peps.python.org/pep-0463/
你最好的办法是用for循环来完成这个操作,或者把操作 Package 在一个函数中:
字符串