## NumPy的应用

Numpy是一个开源的Python科学计算库，**用于快速处理任意维度的数组**。Numpy**支持常见的数组和矩阵操作**，对于同样的数值计算任务，使用NumPy比直接使用Python不仅代码要简洁的多，而且NumPy在性能上远远优于原生Python，基本是1到2个数量级的差距，数据量越大，NumPy的优势就越明显。

Numpy最为核心的数据类型是`ndarray`，使用`ndarray`可以处理一维、二维和多维数组，该对象相当于是一个快速而灵活的大数据容器。NumPy底层代码使用C语言编写，解决了GIL的限制，`ndarray`在存储数据的时候，数据与数据的地址都是连续的，这样就给使得批量操作数组元素时速度很快，远远优于Python中的`list`；另一方面`ndarray`对象提供了更多的方法来处理数据，尤其是和统计相关的方法，这些方法也是原生的`list`没有的。

### 创建数组对象

1. 一维数组
    - 方法一：使用array函数，通过list创建数组对象
    - 方法二：使用arange函数，指定取值范围创建数组对象
    - 方法三：使用linspace函数，用指定范围均匀间隔的数字创建数组对象
    - 方法四：使用numpy.random模块的函数生成随机数创建数组对象
2. 二维数组
    - 方法一：使用array函数，通过嵌套的list创建数组对象
    - 方法二：使用zeros、ones、full函数指定数组的形状创建数组对象
    - 方法三：使用eye函数创建单位矩阵
    - 方法四：通过reshape将一维数组变成二维数组
    - 方法五：通过numpy.random模块的函数生成随机数创建数组对象
3. 多维数组：跟上面的情况相似，可以通过下面的例子进行了解。

### 数组对象基本属性

1. size属性：元素个数
2. shape属性：数组的形状
3. dtype属性：元素的数据类型
4. ndim属性：数组的维度

### 数组对象常用方法



### 数组的运算

1. 标量运算
2. 矢量运算

### 数组的其他操作



### 矩阵运算

