目录
多维数组
数组的形状(Shape):是一个元组,用来描述数组的维度,以及各个维度内部的元素个数。
- shape:(30,5) 表示第一个维度中有30个元素,第二个维度中有5个元素,即30行5列
- shape:(5, ) 表示只有一个维度,该维度有5个元素
- shape:(10,30,5) 表示一个三维数组
创建NumPy数组
使用NumPy科学计算库(Anaconda已安装好)
- pip安装:pip install numpy
- 导入NumPy库:import numpy as np
创建数组
- array([列表]/(元组),dtype=数据类型)
- asarray([列表]/(元组)
区别:当数据源本身已经是一个ndarray对象时,array()仍然会复制出一个副本,asarray()则直接引用本来的数组
注意:numpy要求数组中所有元素的数据类型必须是一致的
ndim | 数组的维数 |
shape | 数组的形状 |
size | 数组元素的个数 |
dtype | 数组中元素的数据类型 |
itemsize | 数组中每个元素的字节数 |
np.arange(start,stop,步长,dtype=数据类型) | 创建数字序列数组(前闭后开,步长默认1,起始默认0) |
np.ones(shape,dtype=数据类型) | 创建全1数组 |
np.zeros(shape,dtype=数据类型) | 创建全0数组 |
np.eye(shape,dtype=数据类型) | 创建单位矩阵 |
np.linspace(start,stop,num) | 创建等差数列(前闭右闭) |
np.logspace(start,stop,num,base) | 创建等比数列 |
数组运算
数据元素的切片
用,隔开各个维度的切割,与python相似
改变数组的形状
- np.reshape(shape):不改变当前数组,按照shape创建新的数组。shape为-1时,会根据数组中总个数、以及其它维度的取值,来自动计算这个维度的取值
- np.resize(shape):改变当前数组,按照shape创建数组
数组运算
- 一维数组可以和多维数组相加,相加时会将一维数组扩展至多维
- 数组之间的减法、乘法、除法运算,和加法运算规则相同
- 幂运算:对数组中的每个元素求n次方
- 乘法运算符:矩阵中对应的元素分别相乘
- 矩阵相乘:np.matmul()或np.dot()
- 矩阵转置:np.transpose()
- 矩阵求逆:np.linalg.inv()
- np.sum(A):计算数组A中所有元素的和
- np.sum(A,axis) 轴(axis):数组中每一个维度被称为一个轴 秩(rank):轴的个数
- np.prod(A):计算数组A中所有元素的乘积
- np.diff():计算数组相邻元素间的差
- np.sqrt():计算各元素的平方根
- np.exp():计算各元素的指数值
- np.abs():取各元素的绝对值
- np.stack((数组1,数组2,...),axis)
矩阵和随机数
创建矩阵
- numpy.matrix(字符串/列表/元组/数组)
- numpy.mat(字符串/列表/元组/数组)
矩阵运算
- 矩阵相乘: *
- 矩阵转置: .T
- 矩阵求逆: .I
随机数模块
函数 | 功能描述 | 返回值 |
np.random.rand(d0,d1...dn) | 数组在[0,1)区间均匀分布的数组 | 浮点数 |
np.random.uniform(low,high,size) | 元素在[low,high)区间均匀分布的数组 | 浮点数 |
np.random.randint(low,high,size) | 元素在[low,high)区间均匀分布的数组 | 整 数 |
np.random.randn(d0,d1...dn) | 产生标准正态分布的数组 | 浮点数 |
np.random.normal(loc,scale,size) | 产生均值为loc标准差为scale的正态分布数组 | 浮点数 |
np.random.shuffle(序列) |
打乱顺序函数 |
注:如果使用相同的seed()值,则每次生成的随机数都相同;如果采用seed()函数设置随机种子,仅一次有效。