作爲複雜任務的一部分,我需要計算matrix cofactors。我使用這個nice code for computing matrix minors以直接的方式完成了這項工作。這裏是我的代碼:加速計算矩陣輔助因子的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
事實證明,這種基質輔助因子代碼是瓶頸,我想優化上面的代碼段。任何想法如何做到這一點?
一般的瓶頸殺手是用C寫瓶頸。這裏有一些技術人員嗎? – Evpok
小心闡述爲什麼你需要計算'輔助因子'?是否有可能避免它,並試圖找到一個更直接的解決你的問題?即使有下面那些'糟糕的'建議,在靠近這樣的加速時你也不會得到什麼,當從'合適的角度'解釋問題時(如果可能的話)可能是可能的。謝謝 – eat
@eat,不可能避免它們。在這裏解釋太複雜了...... –