2016-12-01 26 views

回答

1

是的,兩種方法都必須遍歷兩個矩陣中的值。但是,python是動態類型化的,因​​此循環的主體需要檢查用於迭代的三個索引的類型,確保支持索引兩個輸入矩陣,確定從矩陣中提取的值的類型,...

正如你所說,這種numpy實現是低層次的,並對輸入和輸出做出更強的假設。特別是,矩陣乘法是用靜態類型語言(C或Fortran--我不太記得)來實現的,這樣類型檢查的開銷就消失了。而且,使用低級語言進行索引是一個相對簡單的操作。

+0

除此之外,僅循環顯式Python循環比通過編譯代碼循環更慢。如果你還在Python中進行算術操作而不是讓Numpy這樣做,那麼在機器浮點數或整數與等價的Python數值對象之間來回轉換時會有費用,以及用Python的不可變數值進行算術的速度慢對象。 –

相關問題