В рамках сложной задачи мне нужно вычислить матричные кофакторы . Я сделал это простым способом, используя этот хороший код для вычисления миноров матриц . Вот мой код:
def matrix_cofactor(matrix):
C = np.zeros(matrix.shape)
nrows, ncols = C.shape
for row in xrange(nrows):
for col in xrange(ncols):
minor = matrix[np.array(range(row)+range(row+1,nrows))[:,np.newaxis],
np.array(range(col)+range(col+1,ncols))]
C[row, col] = (-1)**(row+col) * np.linalg.det(minor)
return C
Оказывается, этот код матричного кофактора является узким местом, и я хотел бы оптимизировать приведенный выше фрагмент кода. Есть идеи, как это сделать?