numpy数组的缓冲区分区

时间:2013-08-30 06:20:20

标签: python arrays numpy memory-layout

在Matlab中,矩阵的缓冲区在列中是连续的。那么numpy的Python数组呢?哪一个在numpy.empty((n,1))numpy.empty((1,n))

之间

2 个答案:

答案 0 :(得分:1)

numpy中,您可以选择Fortran-contiguous(沿着列,就像在Matlab中)和C-contiguous(沿着行,这是numpy中的默认值)顺序,{{3 ,所以你有更多的灵活性。

正如@ user2357112已经说过,对于1xN或Nx1阵列而言并不重要,但对于MXN阵列来说,它确实很重要,你应该知道这一点。

答案 1 :(得分:0)

他们做不同的事情。一个是Nx1阵列;另一个制作1xN阵列。两者都不“更好”。 (事实上​​,即使您指定了列主要存储,两个阵列的内存布局也是相同的。)

要回答有关存储布局的问题,numpy默认为行主要布局,a.k.a。C-contiguous。您可以在docs中清楚地看到这一点。