基本数据结构
numpy介绍
python开源的科学计算工具包
高级数值编辑工具
强大的N维数组对象ndarry
对数组结构数据进行运算(不用遍历循环)
随机数,线性代数,傅里叶变换等
多维数组ndarray
“秩”
ar.ndim
维度
ar.shape
元素总数n*m
ar.size
元素的数值类型
ar.dtype
元素的字节大小
ar.itemsize
元素的缓冲区
ar.data
数据类型
创建数组:array()函数
np.array(range(10))
创建数组:array()函数,括号内可以是列表、元祖、数组、生成器等
创建数组:arange()
类似range(),在给定间隔内返回均匀间隔的值
均匀间隔
np.arange(5,12)
返回5-11
np.arange(5.0,12,2)
返回5.0-12.0,步长为2
创建数组:linspace()
返回在间隔[开始,停止]上计算的num个均匀间隔的样本
num个均匀间隔
np.linspace(2.0, 3.0, num=5)
创建数组
np.zeros(5)
零矩阵
np.zeros((2,2), dtype = np.int)
np.zeros_like(ar3)
np.ones(9)
全1矩阵
np.ones((2,3,4))
np.ones_like(ar3)
np.eye(5)
单位阵
通用函数
数组形状
.T方法:转置
.reshape()
直接将已有数组改变形状
元素个数必须相同
.resize()
返回具有指定形状的新数组,如有必要可重复填充所需数量的元素。
元素可以不同
.T/.reshape()/.resize()都是生成新的数组!!!
数组的复制
ar3 = ar1.copy()
print(ar3 is ar1)
False
ar2 = ar1
print(ar2 is ar1)
True
数组类型转换
ar2 = ar1.astype(np.int32)
注意:养成好习惯,数组类型用np.int32,而不是直接int32
数组堆叠
numpy.hstack((a,b)):水平(按列顺序)堆叠数组
注意:((a,b)),这里形状可以不一样
numpy.vstack((a,b)):垂直(按列顺序)堆叠数组
注意:((a,b)),这里形状必须一样
numpy.stack(arrays, axis=0):沿着新轴连接数组的序列,形状必须一样!
数组拆分
numpy.hsplit(ary, indices_or_sections):将数组水平(逐列)拆分为多个子数组 → 按列拆分
numpy.vsplit(ary, indices_or_sections)::将数组垂直(行方向)拆分为多个子数组 → 按行拆
数组简单运算
加减乘除幂
print(ar ** 0.5)
最大最小值
平均值
标准差
求方差
索引及切片
一维数组索引及切片
ar[4]
ar[3:6]
二维数组索引及切片
ar[2][1]
三维数组索引及切片
布尔型索引及切片
数组索引及切片的值更改、复制
ar[5] = 100
ar[7:9] = 200
随机数
随机数生成
np.random.normal(size=(4,4))
生成一个标准正太分布的4*4样本值
numpy.random.rand(d0, d1, ..., dn)
生成一个[0,1)之间的随机浮点数或N维浮点数组
均匀分布
numpy.random.randn(d0, d1, ..., dn)
生成一个浮点数或N维浮点数组
正态分布
numpy.random.randint(low, high=None, size=None, dtype='l')
生成一个整数或N维整数数组
np.random.randint(2,6,size=5)
low=2,high=6,size=5:生成5个[2,6)之间随机整数
数据的输入输出
存储数组数据 .npy文件
np.save('C:/Users/Hjx/Desktop/arraydata.npy', ar)
读取数组数据 .npy文件
np.load('C:/Users/Hjx/Desktop/arraydata.npy')
存储/读取文本文件
np.savetxt('array.txt',ar, delimiter=',')
ar_loadtxt = np.loadtxt('array.txt', delimiter=',')