NumPy
NumPy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
数组创建:(且会自动转换为一样的类型)
1、基本属性操作:
查看类型:
类型所占空间:
数量大小:
查看矩阵结构:
查看维度:
索引与切片:
2、数组结构
矩阵格式(多维):
取值:几行几列 and赋值:
简单的赋值相当于引用,只能通过copy才能再分配空间,修改时才能互不干扰
等差数组
bool数组,可筛选数据
- 变成索引,将true的值取出
筛选数据:
np.where 得到所筛选数据的索引:
3、数组类型
指定数组所存类型:
指定类型为object,即可使多个类型共存:
数组类型转换asarray,转换之后记得另赋空间,原始的数组不会做改变:
4、数值运算
求和sum:
按轴求和:axis=0,纵轴和 | axis=1,横轴和
- -1为最后一个轴
两种方式:
- np.sum()
- array.sum()
乘积:
最大最小值:(可指定轴)
最值所在索引:
mean均值、std标准差、var方差
对值做限制(小于2都变成2,大于4都变成4):
四舍五入(+decimals精度):
5、排序操作
默认按行(独立)排列:
将数值排序之后的索引(为排序的索引):
向排好序的数组插入一些值,searchsorted可得到插入且排序好的索引:
在第三列为升序的情况下,同时改变其他行的顺序:
6、对数组形状的操作
改变结构shape,reshape:(大小不能改变)
增加数组维度 newaxis:
压缩操作:将空轴去掉(以上的1,1,1为空轴)
转置T或transpose:
数组连接:
- 注意括号*将括号内的数组连接
- axis=0/1,或者vstack、hstack
将数组拉平:
7、数组生成
(1)
等距的生成:
生成log函数的值:
生成x、y的网格:
构造行或列向量:
(2)
全数字的矩阵生成:
类型定义:
先成成空的数组,在用fill填充:
**生成维度一样的矩阵: **
单位矩阵:
8、四则运算
对应位置相乘:(现x,y为向量)
矩阵相乘:(需维度相同)
- 先将y.shape=1,2再与(2,1)的x相乘
乘号 ‘ * ’ 会将维度不同的矩阵补全相乘:
逻辑与或非:
*9、随机模块
构造:rand为0-1区间的
一个随机数:
某个区间生成n的随机数:
生成服从高斯分布的随机数:传入参数
设定随机数的精度:
洗牌:打乱顺序
随机种子:
10、文件读写
写文件:
读入文件字符的两种方式:
- 一个一个字符的读
- 直接loadtxt():默认为空格为分割符
11、数组保存
数组存入txt:
- fmt:存入的类型
- delimiter:分隔符
以np的形式保存和读出:
、
压缩文件的形式,存入多个np数组:
压缩文件的np读出: