目录
一、numpy基本介绍
1、什么是numpy
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
2、numpy的数据结构
numpy的数据结构是ndarray,它是一种N维的数组类型,它描述了相同类型的“items”的集合,同时在ndarray中的数据类型都是相同的因此他含有的数据类型相同,因此numpy运算的数据的速度非常的快。
3、numpy数据类型
numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型。下表列举了常用 NumPy 基本类型。
名称 | 描述 |
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型 |
intp | 用于索引的整数类型 |
... | ... |
4、numpy数组的属性
在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴(axis),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。
属性 | 说明 |
ndarray.ndim() | 秩,即轴的数量或维度的数量 |
ndarray.shape() | 数组的维度,对于矩阵,n 行 m 列 |
ndarray.size() | 数组元素的总个数,相当于 .shape 中 n*m 的值 |
ndarray.dtype() | ndarray 对象的元素类型 |
ndarray.itemsize() | ndarray 对象中每个元素的大小,以字节为单位 |
ndarray.flags() | ndarray 对象的内存信息 |
ndarray.real() | ndarray元素的实部 |
ndarray.imag() | ndarray 元素的虚部 |
ndarray.data() | 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 |
5、numpy常用函数
(1)常用创建函数
函数名 | 作用 |
np.ndarray() | 创建数组 |
np.arange(n) | 元素从0到n-1的ndarray类型 |
np.ones(shape) | 根据shape生成一个全1数组,shape是元组类型 |
np.zeros((shape) | 根据shape生成一个全0数组,shape是元组类型 |
np.full(shape, val) | 根据shape生成一个数组,每个元素值都是val |
np.eye(n) | 创建一个正方的n*n单位矩阵,对角线为1,其余为0 |
np.ones_like(a) | 根据数组array_03的形状生成一个全1数组 |
np.zeros_like(a) | 根据数组a的形状生成一个全0数组 |
np.full_like(array_03,99) | 根据数组a的形状生成一个数组,每个元素值都是val |
np.linspace(1,10,10) | 根据起止数据等间距地填充数据,形成数组 |
np.concatenate((a, b), axis=0) | 纵向连接 # 将两个或多个数组合并成一个新的数组 |
注:shape是形状即假设shape是(2,3)他所生成的矩阵就是2行3列的形状,后面shape都是一样的意思。
(2)常用的转换函数
①数组维度转换
函数 | 作用 |
np.reshape(shape) | 不改变数组元素,返回一个shape形状的数组,原数组a不变9 |
np.resize(shape) | 改变数组的shape,且修改原数组 |
np.swapaxes(ax1, ax2) | 将两个维度调换 |
np.flatten() | 把数组的维度降低,返回折叠后的一维数组,原数组不变 |
②数组类型转换
函数 | 作用 |
b.astype(np.int16) | astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致 |
b.tolist() | 转换成list类型 |
注:b是变量名,不是定义的numpy名称,为了方便大家都会对numpy as为np