文章目录
The N-dimentional array 即 ndarray 对象,是用于存放同类型元素的多维数组,元素索引由0下标开始。
constructing arrays
创建一个 ndarray 只需调用 NumPy 的 array 函数即可:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
(或者numpy.zeros, numpy.empty)
Internal memory layout of an ndarray
ndarray 对象在计算机内存中由连续的一维的段(segment)组成,每个元素占用相同大小的存储区域(内存块),并且所有块的解释方式完全相同。结合索引(index),将每个元素映射到内存块中的一个位置(location of an item in the block),内存块以行顺序(C样式)或列顺序(F样式或MatLab风格) 保存元素(不同的方案,将N维数组的元素项安排在一维内存块中)。
ndarray内部由以下内容组成:
[1] ndarray 本身,包括了数组的形状(指定了索引可以变化的范围)
[2] 指针(header),指向内存或内存映射文件中的一块数据
[3] 数据类型对象 (dtype),描述与数组元素相对应的固定大小的内存块中的字节。包括数据类型(ndarray数组元素是同一类型的,整型,浮点数,…),数据大小(占用字节数),数据字节顺序(big/little-endian)等。
Array attributes
数组属性反映了数组本身固有的信息。其中一部分可以被重置,而无需创建新的数组。
Memory Layout
ndarray.flags 有关数组的内存布局memory layout的信息。
ndarray.shape 数组维度的元组。
ndarray.ndim 数组的维数。
ndarray.size 数组中元素的数量。
ndarray.data 实际数组元素的缓冲区,指向数组数据的开头(数组内存地址是连续存放的)通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。
ndarray.itemsize 数组一个元素的长度(以字节为单位)
ndarray.nbytes 数组元素消耗