二、数组元素的底层存储与存储顺序说明
1、构造一个二维数组,以二维数组进行说明(二维数组用的多一些)
x = np.arange(1,13).reshape(3,4) display(x)
结果如下:
结果分析:
当我们什么都不指定,直接创建了一个数组后,数据默认的填充方式是,先填满每一行,然后再填充第二行,依次进行下去。
原因是:numpy的底层是集成了C语言的,因此numpy数组元素的底层存储也就是“C风格”的,下面我们来对这种风格进行说明。
2、C语言风格和F语言风格
1)不同风格的数组元素的底层存储
以二维数组来说,不管是C语言风格,还是F语言风格,他们在底层的存储顺序都是一行的,只不过最终呈现的效果属于“虚拟展示”。这里我先拿出来说明一下,让大家有一个主观印象,下面我们用两张图展示一下。
① C语言风格
② F语言风格
2)什么是C语言风格和F语言风格?
C指的就是C语言,numpy底层集成了C语言,因此当你不指定order参数的时候,默认就采用的是C语言风格,C语言风格,最右边的索引变化最快。
F指的就是F语言,最左边的索引变化最快。
① 一张图形象说明上述文字;
图示说明:
3、案例讲解
1)创建一个数组,分别使用不同的语言风格进行元素填充;
① 指定order=“C”(默认就是order=“C”)
a = np.arange(1,13) b = a.reshape(3,4,order="C") display(b)
结果如下:
结果分析:
② 指定order=“F”
a = np.arange(1,13) b = a.reshape(3,4,order="F") display(b)
结果如下:
结果分析: