重要的是要按行还是按列切片。按行切片可以返回视图,因为它是原始数组的连续段。按列切片必须返回一个副本,因为它不是连续的段。例如:
A1 A2 A3B1 B2 B3C1 C2 C3
默认情况下,它以这种方式存储在内存中:
A1 A2 A3 B1 B2 B3 C1 C2 C3
因此,如果您想选择第二行,则为:
[A1 A2 A3] B1 B2 B3 [C1 C2 C3]
可以这样描述
{start: 0, size: 3, stride: 6}。但是,如果您想选择第二列:
[A1] A2 [A3 B1] B2 [B3 C1] C2 [C3]
而且没有办法用一个开始,一个大小和一个步幅来描述它。因此,没有办法构造这样的视图。
如果您希望能够查看每隔两列而不是每隔两行,则可以按列为主(又名Fortran)顺序构造数组:
np.array(a, order='F')
然后将其存储为:
A1 B1 C1 A2 B2 C2 A3 B3 C3



