numpy的一些常用知识

这篇也比较好numpy的21个常用知识

创建数组对象

创建ndayyay对象有很多种,如创建一维数组,二维数组和多维数组

一维数组

1,使用array函数,通过list创建数组对象
在这里插入图片描述
2,使用arange函数,指定数组的范围,并可以指定步长。如果不指定步长,则默认为一,且不包含末尾。是[0,30)的区间
在这里插入图片描述
3,linspace函数,指定范围均匀间隔

在这里插入图片描述
4.random随机产生
在这里插入图片描述
6,normal产生正太分布随机数
在这里插入图片描述

二维数组

1,使用array函数,通过嵌套list创建数组对象,在array( [ ] )括号内部的方括号中添加数组,通过嵌套形成二维数组
在这里插入图片描述
2.,

使用zeros,创建全为零的数组
      使用ones,创建全为1的数组
      使用full,创建全部相同数字的数组
      使用eye ,创建单位矩阵

在这里插入图片描述
3,reshape 重新定义矩阵的维度

reshape(2,3)生成一个两行三列的数组

在这里插入图片描述
4,rand和randint
在这里插入图片描述

三维数组

1,创建多维数组,通过随机的方式,产生1·100之间3维的4行4列的多维数组
在这里插入图片描述

3,

arange数字在1··25,间隔为一(不指定默认为一),共计24个数,所以可以产生两个3行4列的数组
24=2x3x4

在这里插入图片描述

数组的对象属性

array本身的属性

  • shape:返回一个元组,表示array的维度
  • ndim:一个数字,表示array的维度的数目
  • size:一个数字,表示array中所有数据元素的数目
  • dtype:array中元素的数据类型

在这里插入图片描述

数组的索引和切片

这里的索引和切片有点类似与python中的,有正索引和负索引,负索引从-1开始
在这里插入图片描述
2,通过索引可以修改数组
在这里插入图片描述
还有一种索引
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

花式索引

1,通过数字的位置进行索引
在这里插入图片描述
2,二维数组通过行,列进行索引
在这里插入图片描述

布尔索引

1,通过布尔值来指定索引对象
在这里插入图片描述
2,逻辑反转,通过~符号
在这里插入图片描述

统计方法

统计方法主要包括:sum()、mean()、std()、var()、min()、max()、argmin()、argmax()、cumsum()等,分别用于对数组中的元素求和、求平均、求标准差、求方差、找最小、找最大、最小值的索引值、最大值的索引值、求轴向累加和等,
在这里插入图片描述
轴向累加和:
在这里插入图片描述
二、.其他方法
1,all() / any()方法:判断数组是否所有元素都是True / 判断数组是否有为True的元素。
2,astype()方法:拷贝数组,并将数组中的元素转换为指定的类型。
3,dump()方法:保存数组到文件中,可以通过 NumPy 中的load()函数从保存的文件中加载数据创建数组
4,fill()方法:向数组中填充指定的元素。
5,flatten()方法:将多维数组扁平化为一维数组。。
6,nonzero()方法:返回非0元素的索引。
7,round()方法:对数组中的元素做四舍五入操作。
8,sort()方法:对数组进行就地排序。
9,swapaxes()和transpose()方法:交换数组指定的轴。
10,tolist()方法:将数组转成Python中的list。

数组之间的运算

一元函数

函数说明
abs / fabs求绝对值的函数
sqrt求平方根的函数,相当于array ** 0.5
square求平方的函数,相当于array ** 2
exp计算的函数
log / log10 / log2对数函数(e为底 / 10为底 / 2为底)
sign符号函数(1 - 正数;0 - 零;-1 - 负数)
ceil / floor上取整 / 下取整
isnan返回布尔数组,NaN对应True,非NaN对应False
isfinite / isinf判断数值是否为无穷大的函数
cos / cosh / sin三角函数
sinh / tan / tanh三角函数
arccos / arccosh / arcsin反三角函数
arcsinh / arctan / arctanh反三角函数
rint / round四舍五入函数

二元函数

函数说明
add(x, y) / substract(x, y)加法函数 / 减法函数
multiply(x, y) / divide(x, y)乘法函数 / 除法函数
floor_divide(x, y) / mod(x, y)整除函数 / 求模函数
allclose(x, y)检查数组x和y元素是否几乎相等
power(x, y)数组的元素和数组的元素,计算
maximum(x, y) / fmax(x, y)两两比较元素获取最大值 / 获取最大值(忽略NaN)
minimum(x, y) / fmin(x, y)两两比较元素获取最小值 / 获取最小值(忽略NaN)
dot(x, y)点积运算(数量积,通常记为,用于欧几里得空间(Euclidean space))
inner(x, y)内积运算(内积的含义要高于点积,点积相当于是内积在欧几里得空间$$的特例,而内积可以推广到赋范向量空间,只要它满足平行四边形法则即可)
cross(x, y)叉积运算(向量积,通常记为,运算结果是一个向量)
outer(x, y)外积运算(张量积,通常记为,运算结果通常是一个矩阵)
intersect1d(x, y)计算x和y的交集,返回这些元素构成的有序数组
union1d(x, y)计算x和y的并集,返回这些元素构成的有序数组
in1d(x, y)返回由判断x 的元素是否在y中得到的布尔值构成的数组
setdiff1d(x, y)计算x和y的差集,返回这些元素构成的数组
setxor1d(x, y)计算x和y的对称差,返回这些元素构成的数组

广播机制

两个数组形状完全相同时,我们发现形状不同的数组仍然有机会进行二元运算,但也绝对不是任意的数组都可以进行二元运算。简单的说,只有两个数组后缘维度相同或者其中一个数组后缘维度为1时,广播机制会被触发,而通过广播机制如果能够使两个数组的形状一致,才能进行二元运算。所谓后缘维度,指的是数组shape属性对应的元组中最后一个元素的值(从后往前数最后一个维度的值),例如,我们之前打开的图像对应的数组后缘维度为3,3行4列的二维数组后缘维度为4,而有5个元素的一维数组后缘维度为5。简单的说就是,后缘维度相同或者其中一个数组的后缘维度为1,就可以应用广播机制;而广播机制如果能够使得数组的形状一致,就满足了两个数组对应元素做运算的需求
在这里插入图片描述

其他常用函数

函数说明
unique去除数组重复元素,返回唯一元素构成的有序数组
copy返回拷贝数组得到的数组
sort返回数组元素排序后的拷贝
split / hsplit / vsplit将数组拆成若干个子数组
stack / hstack / vstack将多个数组堆叠成新数组
concatenate沿着指定的轴连接多个数组构成新数组
append / insert向数组末尾追加元素 / 在数组指定位置插入元素
argwhere找出数组中非0元素的位置
extract / select / where按照指定的条件从数组中抽取或处理数组元素
flip沿指定的轴翻转数组中的元素
fromiter通过迭代器创建数组对象
fromregex通过读取文件和正则表达式解析获取数据创建数组对象
repeat / tile通过对元素的重复来创建新数组
roll沿指定轴对数组元素进行移位
resize重新调整数组的大小
place / put将数组中满足条件的元素/指定的元素替换为指定的值
partition用选定的元素对数组进行一次划分并返回划分后的数组

在这里插入图片描述
在这里插入图片描述

矩阵运算

线性代数快速回顾
向量也叫矢量,是一个同时具有大小和方向,且满足平行四边形法则的几何对象。与向量相对的概念叫标量或数量,标量只有大小、绝大多数情况下没有方向。
向量可以进行加、减、数乘、点积、叉积等运算。
行列式由向量组成,它的性质可以由向量解释。
行列式可以使用行列式公式计算: 。
高阶行列式可以用代数余子式展开成多个低阶行列式,如:。
矩阵是由一系列元素排成的矩形阵列,矩阵里的元素可以是数字、符号或数学公式。
矩阵可以进行加法、减法、数乘、乘法、转置等运算。
逆矩阵用表示,;没有逆矩阵的方阵是奇异矩阵。
如果一个方阵是满秩矩阵(矩阵的秩等于矩阵的阶数),该方阵对应的线性方程有唯一解。

线性代数模块

NumPy 的linalg模块中有一组标准的矩阵分解运算以及诸如求逆和行列式之类的函数,它们跟 MATLAB 和 R 等语言所使用的是相同的行业标准线性代数库,下面的表格列出了numpy以及linalg模块中常用的跟线性代数相关的函数。

函数说明
diag以一维数组的形式返回方阵的对角线元素或将一维数组转换为方阵(非对角元素元素为0)
vdot向量的点积
dot数组的点积
inner数组的内积
outer数组的叉积
trace计算对角线元素的和
norm求模(范数)运算
det计算行列式的值(在方阵上计算会得到一个标量)
matrix_rank计算矩阵的秩
eig计算矩阵的特征值(eigenvalue)和特征向量(eigenvector)
inv计算非奇异矩阵(阶方阵)的逆矩阵
pinv计算矩阵的摩尔-彭若斯(Moore-Penrose)广义逆
qrQR分解(把矩阵分解成一个正交矩阵与一个上三角矩阵的积)
svd计算奇异值分解(singular value decomposition)
solve解线性方程组,其中是一个方阵
lstsq计算的最小二乘解
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值