计算机软硬件(杂):列或者行优先顺序存储
wiki 在计算中,行优先顺序(Row-major order)和列优先顺序(column-major order)是在随机存取存储器 等线性存储器中存储多维数组的方法。顺序之间的区别在于数组的哪些元素在内存中是连续的。在行优先顺序中,行的连续元素彼此相邻。它对遍历数组时的性能也很重要,因为 CPU 处理顺序数据比处理非顺序数据更有效。
常见的语言,NumPy的多维数据和Torch当前默认为行优先,可以推广至任意维。
1 | 0,1,2],[3,4,5]) a = np.array([ |
文字描述,如数组: \[ A=\left[\begin{array}{lll} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{array}\right] \] 存储方式 \[ \begin{array}{|c|c|c|} \hline \text { 地址 } & \text { 行优先顺序 } & \text { 列优先顺序 } \\ \hline \mathbf{0} & a_{11} & a_{11} \\ \hline \mathbf{1} & a_{12} & a_{21} \\ \hline \mathbf{2} & a_{13} & a_{12} \\ \hline \mathbf{3} & a_{21} & a_{22} \\ \hline \mathbf{4} & a_{22} & a_{13} \\ \hline \mathbf{5} & a_{23} & a_{23} \\ \hline \end{array} \]