Numpy
1.1 数据的维度
1.1.1 列表与数组
相同:都表示一组数据的有序结构
相异:列表的数据类型可以不同,数组的数据类型相同
1.1.2 多维数据与高维数据
- 多维数据由一维或二维数据在新维度上扩展形成
- 高维数据仅使用最基本的二元关系(如键值对)展示数据间的复杂结构,如:
1.1.3 数据维度的python表示
- 一维数据:列表和集合
- 二维数据:列表
- 多维数据:列表
- 高维数据:字典或数据表示格式
1.2 Numpy的数组对象ndarray
1.2.1 ndarray基本语法
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
- **np.array()**:生成一个ndarray数组
- .ndim
- .shape
- .size
- .dtype
- .itemsize
1.2.2 ndarray的创建和变换
1.2.2.1 ndarray的创建
- x=np.array(list/tuple)
- dtype 参数可以在创建时传入想指定的数据类型
- 利用函数创建ndarray数组
使用其他函数创建ndarray数组,如:
- np.linspace(起始元素,终止元素,元素个数)
- endpoint参数 默认为True,当传入False时,不将终止元素算入元素个数
- np.concatnate((a,b))
1.2.2.2 ndarray的维度变换
- .reshape(shape)
- .resize
- .swapaxes(ax1,ax2)
- .flatten()
1.2.2.3 ndarray的类型变换
- new_a=a.astype(new_type)
1.2.2.4 ndarray转换为列表
- .tolist()
1.2.3 ndarray的索引和切片
数组的索引和切片
一维数组的索引和切片:与python的列表类似
多维数组的索引
- a[x,y,z]
多维数组的切片
- a[: ,: ,: ]
1.2.4 ndarray的运算
1.2.4.1数组与标量的运算
数组与标量的加减乘除作用于数组的每一个元素
1.2.4.2 元素级运算的函数
- np.abs(x)/np.fabs(x)
- np.sqrt(x)
- **np.aqare(x) ** 计算各元素的平方
- np.log(x)/np.log10(x)/np.log2(x)
- **np.ceil(x)/np.floor(x)** 计算各元素的ceiling值或floor值
几乎numpy的一元函数作用后都是生成了新数组 而没有改变原来的数组
1.2.4.3 二元函数
1.3 文件的存取
1.3.1 CSV文件存取
- %d表示以整数形式写入文件中
- %.2f表示以两位小数形式写入文件,%.1f表示以一位小数形式写入文件
csv文件的局限性:只能存储一维和二维数组
1.3.2 多维数据的存取
1.3.3 numpy的便捷文件存取
1.4 numpy的随机数函数
numpy的random子库
- np.random.*
- np.random.rand()
- np.random.randn()
- np.random.randint()
1.4.1 随机函数(1)
实例化
- 重复使用同样的随机数种子可以在测试的时候得到相同的随机数组
1.4.2 随机函数(2)
实例化
1.4.3 随机函数(3)
实例化
1.5 numpy的统计函数
- np.*
- np.std()
- np.var()
- np.average()
1.5.1 统计函数(1)
实例化
默认情况下 axis=None 表示对所有元素进行累加计算
- axis=0 列数不变,对每一列进行计算得一个新值
- axis=1 行数不变,对每一行进行计算得一个新值
1.5.2 统计函数(2)
实例化
1.6 numpy的梯度函数
- np.gradient(f)
- 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度
实例化