Работа над некоторой матричной алгеброй здесь. Иногда мне нужно инвертировать матрицу, которая может быть сингулярной или плохо обусловленной. Я понимаю, что это просто pythonic:
try:
i = linalg.inv(x)
except LinAlgErr as err:
#handle it
но я не уверен, насколько это эффективно. Разве это не лучше?
if linalg.cond(x) < 1/sys.float_info.epsilon:
i = linalg.inv(x)
else:
#handle it
Выполняет ли numpy.linalg перед началом теста, который я запретил?