2013-08-30 156 views

回答

1

numpy你可以選擇(沿着列,例如在Matlab)Fortran-contiguous之間C-contiguous(沿着行,這是numpy的默認值)順序,passing the order argument when you create an array,讓您有更多的靈活性。

由於@ user2357112已經表示,對於1xN或Nx1陣列,這並不重要,但對於MXN陣列來說,它確實很重要,您應該意識到這一點。

+0

C是連續的缺省'命令「論點。 – Samuel

+0

@Samuel,是的,C-contiguous是默認的...... –

0

他們做不同的事情。一個產生一個Nx1陣列;另一個產生1xN陣列。兩者都不是「更好」。 (實際上,即使指定列主存儲器,內存佈局也將相同)。

要回答有關存儲佈局的問題,numpy默認爲行主佈局,也稱爲C連續。你可以看到這清楚地反映在docs

+0

如果你指定fortran佈局,你使用的任何numpy例程仍然會返回默認順序中的東西(所以fortran佈局對我來說似乎毫無意義) – usethedeathstar

+0

@usethedeathstar你需要使用Fortran佈局,例如'BLAS '在Fortran中編程的例程,所以這個佈局可以非常有用 –

+0

@SaulloCastro你如何從numpy訪問這些例程?是否有像numpy.sqrt(x)或任何你想做的事情的fortran版本?或者你的意思是如果你使用f2py左右? – usethedeathstar