Ускорение кода Python для вычисления матричных кофакторов

В рамках сложной задачи мне нужно вычислить матричные кофакторы . Я сделал это простым способом, используя этот хороший код для вычисления миноров матриц . Вот мой код:

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

Оказывается, этот код матричного кофактора является узким местом, и я хотел бы оптимизировать приведенный выше фрагмент кода. Есть идеи, как это сделать?

9
задан Community 23 May 2017 в 12:10
поделиться