2.2 NumPy数组的构造
ndarray定义的相同类型元素的N维数组。可以使用基于0的索引访问数组中的元素,使用起来与Python的原生数组没有什么区别。不过在实现方式上,却完全不同。
ndarray中的每一个元素都占用同样大小的内存,每一个元素都是同一种数据类型对象。除了基本的数据类型(整数、浮点数等等),数据类型也可以是某种数据结构(比如定义一个学生的基本信息数据结构为数据对象)。
实际上ndarray是用C编写实现的,然后通过接口被Python调用。有兴趣深入研究的,可以看一下numpy的源码。源码的下载地址是:
https://github.com/numpy/numpy
在NumPy的官网上有说明ndarray是如何实现的:
ndarray是一个对象,其中的data参数指向一块连续的内存区域,在此内存区域中存放的是dtype实例化对象。dtype一共支持21种内置的数据类型。在同一个ndarray的对象中,dtype是一样的,占用的内存大小也是一样的。这样的定义不如Python原始数组灵活方便,但是却可以极大的提高访问与处理速度。
需要注意的是,不是所有的ndarray对象都拥有自己的内存块,有的ndarray对象可能指向其他的ndarray内存地址。也就是说,数据可能是共享的。
使用numpy.array()实例化一个ndarray对象:
numpy.array(object, dtype = None, copy = True, order &