导图社区 NnmPy
这是一篇关于NnmPy的思维导图,主要内容有两种基本对象、优势、随机数、两种基本的数据类型。
编辑于2022-08-27 21:08:28 山西NumPy
两种基本对象
多维数组(ndarray)
数组下标也是从零开始
数组的属性
ndim 表示数组维度
shape 表示数组的尺寸,形状为(n,m)
size 表示数组的元素总数
dtype 描述数组中元素的类型
itemsize 表示数组中每个元素的大小
创建数组
函数array(odject,dtype,ndmin)
创建一维或多维数组
object : 接收,表示想要创建数组
dtype :接收,表示数组所需要的数据类型
ndimn :是唯一需要的参数,指定最小维度
函数arange(起始值,终止值,步长) 创建一维数组,数组中不包含终止值
函数linspace(起始值,终止值,元素个数) 创建一个等差数列的一维数组,包括终止值
函数logspace(起始值,终止值,元素个数) 创建一个等比数列的一维数组,包括终止值
函数创建特殊数组
zeros() 创建值全部为0的数组
eye(), identity() 生成主对角线上的元素为1,其余元素为0的的数组,类似于单位矩阵
diag() 创建类似对角的数组
ones() 创建元素全为1的数组
asarray() 类似于numpy.array,可将python序列转换为ndarray
empty() 创建指定形状和只分配内存空间的数组
数组操作
索引和切片
一维数组 :数组名[索引(下标)] 数组名(start:end:step)
二维数组:索引由行索引和列索引构成 数组名[行索引,列索引] 切片:数组名[行索引开始:行索引终止:步长,列索引开始:列索引终止:步长] 数组切片还可用来修改元素的值
整数索引:从两个序列的对应位置取出两个整数组成行下标和列下标
布尔值索引:当结果对象是布尔运算的结果时,将使用布尔值索引
改变形状
数组名.shape(x0,x1,..,xn) reshape()函数 resize()函数
展平
ravel()函数 flatten()函数 flatten()会请求分配内存来保存结果 ravel()函数只是返回数组的一个视图
翻转数组
transpose() ndarry.T() 实现翻转给定数组的维度 rollaxis() 实现向后滚动特定的轴 swapaxes() 交换数组的两个轴
数组连接,分割
concatenate()函数 沿特定的轴将形状相同数组连接 stack()函数 沿新轴连接数组序列 hstack()函数 将数组沿水平方向连接 vstack()函数 将数组沿竖直方向连接
split函数 沿特定的轴将数组分割为子数组 hsplit()函数 将数组沿水平方向分割 vsplit()函数 将数组沿竖直方向分割
数组转换
将数组转换成列表:数组名.tolist() 转换数组的数据类型
元素的添加与删除
append() 函数 数组末尾添加元素 insert() 函数 在给定索引之前沿给定轴在输入数组中插入值 delete()函数 从输入数组中删除指定数组
矢量计算
形状相同
形状不同(广播机制)低维数组会自动将维度扩充到与高维数组一致,然后再逐个元素计算
数组与标量之间的运算
函数(ufunc)
从里到外,从后往前
通用函数
一元函数
ceil()求大于等于该值的最小整数 fioor()求小于等于该值的最大整数
rint() 将各元素的值四舍五入
modf() 小数和整数部分分别以独立数组形式返回
abs(),fabs() 计算整数浮点数或复数的绝对值
两元函数
+、add() 对应元素相加 -、subtract()第一数组减第二数组
multiply()对应元素相乘 / 、//、divide()对应元素相除或1向下整除
dot() 对应元素相乘的累加和
mood(),remainder() % 求模计算
优势
操作简便,直接对数组和矩阵进行操作
存储效率和输入输出效率更好
大部分代码是用C语言编写完成
是开源的库
随机数
随机数的生成
利用NumPy中的random模块生成
rand()
生成一个(d0,d1,...dn)维的数组,数组元素取自[0,1)内均匀分布的随机数 函数格式:numpy.random.rand(d0,d1,...dn)
randn()
生成一个(d0,d1,...dn)维的数组,数组元素是标准正态分布的随机数 函数格式:numpy.random.randn(d0,d1,...dn)
randint()
生成指定范围随机数 函数格式:numpy.random.randint(low,high,size,dtype)
random()
产生[0.0,1.0)之间的浮点数,但数组元素不包括1 函数格式:numpy.random.random(size=None)
两种基本的数据类型
数组
矩阵
NumPy矩阵对象为matrix
矩阵的属性
.T:返回自身的转置
.H:返回自身的共轭转置
.I:返回自身的逆矩阵
.A:返回自身数据的二维数组的一个视图
矩阵创建
使用字符串创建数组
使用嵌套序列创建数组
使用一个数组创建矩阵
使用matrix()函数创建
使用bmat()函数创建
seed()确定随机数生成器的种子 permutation()返回一个随机排列 shuffle()对一个序列进行随机排列binomial()产生二项分布的随机数normal()产生正态(高斯分布的随机数)
矩阵的计算
进行矩阵的加减除法运算时,只有相同行数和列数的矩阵才能相互进行计算。 失量积(运算符*)左阵列数等于右阵行数 数量积使用multiply()函数,是矩阵的点乘操作