首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python第三十一课:Numpy数组操作

02 数组翻转 从数学角度而言,二维数组就是矩阵。在矩阵操作,有一项叫转置,是矩阵元素位置行列互换,比如原来在(1,2)这个位置元素,会和(2,1)这个位置元素进行互换。...在Numpy我们有两种方式来实现数组翻转: (1)transpose函数,将被翻转目标A放到函数,像这样np.transpose(A)就可以了。...03 数组连接 连接数组顾名思义是两个或多个数组按照一定方式连接起来,常用数组连接有一下几种函数: (1)concatenate函数,使用方式是把被连接数组依次放进去,用逗号隔开,再用括号括起来...axis默认值是0,意思是沿着第一个连接,如果你设置成1,那么就是沿着第二个连接。 (2)stack函数,它和concatenate函数有一点不同。...第一个是concatenate函数,axis=1表示沿着第二个,也就是水平连接;第二个是stack函数,同样是沿着第二个,在这里我们省略了axis参数;第三个是hstack,竖直方向连接;第四个是vstack

70530

「Deep Learning」读书系列分享第二章:线性代数 | 分享总结

这个挺常见我不就不多说了。 ? 矩阵方程求解是,把方程每一个系数组成矩阵 A,根据 A 这个矩阵本身特性就可以直接判断这个方程有没有解、有多少解。还有无解情况。 ?...这是矩阵方程一些求解,比较常规,像 AX=b 这个线性方程一般怎么解呢?常规方法:两边直接乘 A 矩阵。它有个前提:A 逆必须存在,也就是说 A 里每一行、每一不能线性相关。...对角线第一个元素是作用在 X 上面的,X 沿着 Y 作了一个对折,也就是镜面反射,原来 M 在这儿,翻过来到这,就是这个矩阵作用;Y 上没有任何变化,因为是 1,不放大也不缩小。...这个跟刚才相比的话,多了右上角一个元素 0.3,这是一个上三角矩阵,是什么意思呢?看一下图结果,沿着 Y 方向是不变,X 方向就做了一种错切,也叫推移。...像 A 这个矩阵,做一个特征分解之后,两个特征值是 3 和 1,然后左边右边对应就是一个特征向量。比如说左边矩阵第一个向量就是 3 这个特征值对应特征向量,不信你可以试一下。

1.1K50
您找到你想要的搜索结果了吗?
是的
没有找到

Python进阶之NumPy快速入门(三)

矩阵操作,有一项叫转置,是矩阵元素位置行列互换,比如原来在(1,2)这个位置元素,会和(2,1)这个位置元素进行互换。...axis默认值是0,意思是沿着第一个连接,如果你设置成1,那么就是沿着第二个连接。 stack函数,它和concatenate函数有一点不同。...第一个函数capitalize首字母转换成大写,目的是针对写文章情景,需要把句子第一个单词首字母大写,比较实用。...第二个函数title是让字符串每个单词第一个字母变成大写,和函数名呼应,这个函数功能是针对文章标题用可以把字符串方便转换成文章标题。 第三个函数lower是数组每个元素转换成小写。...第一个是求沿着纵轴每个中最小元素,因为数组有四,因而会选出四个数字;第二个是求沿着横轴每个行中最大元素,因为数组有三行,因而会选出三个数字。最后我们没有设定,因为会返回A数组中最大元素。

79820

矩阵成真!Pytorch最新工具mm,3D可视化矩阵乘法、Transformer注意力

研究团队首先介绍可视化方法,通过可视化一些简单矩阵乘法、和表达式来建立直觉,然后深入研究一些更多示例。 为什么这种可视化方式更好?...mm可视化方法基于这样一个前提,即矩阵乘法从根本上说,是一种三维运算。...矩阵-向量乘积 分解为矩阵向量乘积matmul,看起来像一个垂直平面(左参数与右参数每乘积),当它水平扫过立方体内部时,绘制到结果上。 即使在简单例子,观察分解中间值也会非常有趣。...通过几何图形,我们可以清楚地看到表达式哪些参与者被分割,哪些参与者保持完整: 第二个例子,展示了如何通过沿着其 j 划分左子表达式、沿着其 i 划分右子表达式以及沿着其 k 划分父表达式来并行化二进制表达式...是一个融合了向量-矩阵乘积链条,证实了从输入到输出整个左关联链条沿着共享 i 是层状这一几何直觉,并且可以并行化。

44630

NumPy库入门教程:基础知识总结

,下例中生成一个9*9乘法表 2 显示、创建、改变数组元素属性、数组尺寸等 3 改变数组尺寸 reshape方法第一个例子是43矩阵转为34矩阵,第二个例子是行向量转为向量。...注意在numpy,当某个指定为-1时,此时numpy会根据实际数组元素个数自动替换-1为具体大小,如第二例,我们指明了c仅有一,而b数组有12个元素,因此c被自动指定为12行1矩阵,即一个...4 元素索引和修改 简单索引形式和切片: 当使用布尔数组b作为下标存取数组x元素时,收集数组x中所有在数组b对应下标为True元素。...3)当输入数组某个长度为1时,沿着运算时都用此第一值。 感觉说不太明白,于是还是用实例说话好了。...outer乘积计算向量和行向量矩阵乘积。 解线性方程(solve):solve(a,b)有两个参数a和b。

1.1K20

机器学习|主成分分析(PCA)

本文让我们来了解一下机器学习中最常用一种降维方法PCA。...例如我们有一数据:{1, 2, 3, 4, 5} 可以计算出平均数为:(1+2+3+4+5)/5=3 各个数与平均数差平方和为:10 方差为:10/5=2 很简单计算过程我们就能得到一数据方差了...协方差矩阵特征向量其实就是一些坐标数据映射到这些坐标之后,我们将会得到最大方差(这意味着更多信息),他们就是我们要求主成分,特征值其实就是特征向量系数,它代表了每个特征向量包含了多少信息量...五、数据映射到新主成分坐标系 我们将使用从协方差矩阵算出来特征向量形成主成分矩阵,并将原始数据映射到主成分矩阵对应坐标上 ,这就叫做主成分分析。...PCA流程总结如下: 1)原始数据按组成n行m矩阵X 2)X每一行(代表一个属性字段)进行零均值化,即减去这一行均值 3)求出协方差矩阵 4)求出协方差矩阵特征值及对应特征向量 5)特征向量按对应特征值大小从上到下按行排列成矩阵

1.2K30

Python:Numpy详解

所以一维数组就是 NumPy (axis),第一个相当于是底层数组,第二个是底层数组里数组。而数量——秩,就是数组维数。  很多时候可以声明 axis。...axis=0,表示沿着第 0 进行操作,即对每一进行操作;axis=1,表示沿着第1进行操作,即对每一行进行操作。 ...当输入数组某个维度长度为 1 时,沿着此维度运算时都用此维度上第一值。  简单理解:对两个数组,分别比较他们每一个维度(若其中一个数组没有当前维度则忽略),满足:  数组拥有相同形状。...numpy.power() numpy.power() 函数第一个输入数组元素作为底数,计算它与第二个输入数组相应元素幂。 ...考虑数组[1,2,3,4]和相应权重[4,3,2,1],通过将相应元素乘积相加,并将和除以权重和,来计算加权平均值。  标准差 标准差是一数据平均值分散程度一种度量。

3.5K00

第4章-变换-4.2-特殊矩阵变换和运算

然后我们谈到从单个矩阵反演一基本变换。最后,导出了一种方法可以绕任意旋转实体。 4.2.1 欧拉变换 此变换是构建矩阵,以将你自己(即相机)或任何其他实体定向到某个方向直观方式。...很难欧拉角组合使用。例如,一和另一之间插值并不是对每个角度进行插值简单问题。事实上,两不同欧拉角可以给出相同方向,因此任何插值都不应该旋转对象。...方程4.22三个旋转矩阵连接起来得到: image.png 显而易见,俯仰角参数由 给出。...我们已经介绍了两种分解,即为刚体变换导出平移和旋转矩阵(第4.1.6节)和从正交矩阵导出欧拉角(第4.2.2节)。 正如我们所见,反推平移矩阵简单,因为我们只需要 矩阵最后一元素。...Goldman[550]提出了另一种绕任意标准化 旋转 弧度方法。在这里,我们简单介绍一下他变换: image.png 在4.3.2节,我们提出了另一种解决这个问题方法,使用四元数。

3.5K40

NumPy 笔记(超级全!收藏√)

所以一维数组就是 NumPy (axis),第一个相当于是底层数组,第二个是底层数组里数组。而数量——秩,就是数组维数。  很多时候可以声明 axis。...axis=0,表示沿着第 0 进行操作,即对每一进行操作;axis=1,表示沿着第1进行操作,即对每一行进行操作。 ...当输入数组某个维度长度为 1 时,沿着此维度运算时都用此维度上第一值。 ...加权平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1) 标准差  标准差是一数据平均值分散程度一种度量。  标准差是方差算术平方根。 ...在 Python ,为了使当进行赋值操作时,两个变量互补影响,可以使用 copy 模块 deepcopy 方法,称之为深拷贝。

4.6K30

【Math for ML】矩阵分解(Matrix Decompositions) (上)

定理2:方阵\(A\)行列式可沿着某一行或某一元素展开,形式如下: 沿着第\(i\)行展开:\[det(A)=\sum_{k=1}^n(-1)^{k+i}a_{ik}det(A_{i,k})\...平方根法(Cholesky decomposition) 一种矩阵运算方法,又叫Cholesky分解。所谓平方根法,就是利用对称正定矩阵三角分解得到求解对称正定方程一种有效方法。...这里不会详细介绍该方法计算方法简单说明一下该方法会带来哪些好处。 1.求逆矩阵 我们都知道求一个矩阵矩阵是一个非常耗时过程,而对于一个上(下)三角矩阵而言,求逆矩阵简单很多。...理解成坐标体系由\(p_1,p_2\)坐标体系逆向还原成传统\(e_1,e_2\)坐标体系。...没错,该步骤就表示在坐标还原到传统意义上坐标后对LB单位圆按照特征值大小进行伸缩。 RB→LT: 对坐标进行变换。 参考 理解矩阵(一) 理解矩阵(二) 理解矩阵(三)

1.1K30

NumPy 1.26 中文官方指南(二)

在 Fortran ,移动二维数组元素时,第一个索引是变化最快索引。当第一个索引改变时,矩阵存储在内存中一地变化。这就是为什么 Fortran 被认为是一种基于语言。...如果不指定,NumPy 沿着输入数组所有反转内容。...随着第一个索引变化移动到下一行,矩阵存储。这就是为什么 Fortran 被认为是一种主语言。另一方面,在 C ,最后索引变化最快。矩阵按行存储,使其成为一种行主语言。...对于一个四数组,你获得四个值作为结果。 阅读更多关于数组方法信息。 创建矩阵可以传递 Python 列表列表来创建一个代表它们 2-D 数组(或“矩阵”)在 NumPy 中表示。...如果您不指定,NumPy 沿着输入数组所有反转内容。

16510

【干货】​深度学习线性代数

矩阵(Matrix) ---- 矩阵是一个有序二维数组,它有两个索引。 第一个指向行,第二个指向。 例如,M23表示第二行和第三值,在上面的黄色图片中为“8”。 矩阵可以有多个行和。...请注意,向量也是一个矩阵,但只有一行或一。 在黄色图片例子矩阵也是2×3维矩阵(行*)。 下面你可以看到矩阵另一个例子及其符号: ?...张量(Tensor) 张量是一数字,排列在一个规则网格上,具有不同数量。 张量有三个指标,第一个指向行,第二个指向,第三个指向。 例如,V232指向第二行,第三和第二个。...它计算方法如下: 第二个矩阵拆分为向量,然后第一个矩阵分别与这些向量每一个相乘。 然后你把结果放在一个新矩阵。 下面的图片逐步解释了这一点: ? 下图进行总结: ?...这基本上是沿着45度轴线矩阵镜像。 获得矩阵转置相当简单。 它第一仅仅是移调矩阵第一行,第二变成了矩阵移调第二行。 一个m * n矩阵简单地转换成一个n * m矩阵

2.2K100

python:numpy详细教程

对那些维度比二维更高数组,hstack沿着第二个组合,vstack沿着第一个组合,concatenate允许可选参数给出组合时沿着。     ...一个数组分割(split)成几个小数组     使用hsplit你能将数组沿着水平分割,或者指定返回相同形状数组个数,或者指定在哪些后发生分割:    >>> a = floor(10*random.random...传统上我们用矩形行和列表示一个二维数组或矩阵,其中沿着0方向被穿过称作行,沿着1方向被穿过。...假如我们想要一个数组第一和第三一种方法是使用列表切片:    >>> A[:,[1,3]] array([[ 1,  3],        [ 5,  7],        [ 9, 11]])...还有一种方法是通过矩阵向量积(叉积)。

1.2K40

【深度学习】 NumPy详解(二):数组操作(索引和切片、形状操作、转置操作、拼接操作)

线性代数运算:Numpy提供了丰富线性代数运算函数,如矩阵乘法、求解线性方程、特征值计算等。...索引 使用整数索引:可以使用整数索引访问数组特定元素。例如,arr[0]返回数组arr第一个元素。 使用布尔索引:可以使用布尔数组作为索引来选择满足特定条件元素。...例如,arr[0, 1]返回多维数组arr第一行第二元素。...例如,arr[1:5:2]返回数组arr索引为1、3元素。 使用省略号切片:对于多维数组,可以使用省略号(...)表示连续切片。例如,arr[..., 1]返回多维数组arr第二。...可以沿着现有的连接两个或多个数组,也可以指定axis参数来创建一个新

100

收藏 | Numpy详细教程

对那些维度比二维更高数组, hstack沿着第二个组合, vstack沿着第一个组合, concatenate允许可选参数给出组合时沿着。...一个数组分割(split)成几个小数组 使用 hsplit你能将数组沿着水平分割,或者指定返回相同形状数组个数,或者指定在哪些后发生分割: >>> a = floor(10*random.random...传统上我们用矩形行和列表示一个二维数组或矩阵,其中沿着0方向被穿过称作行,沿着1方向被穿过。...假如我们想要一个数组第一和第三一种方法是使用列表切片 >>> A[:,[1,3]] array([[ 1, 3], [ 5, 7], [ 9, 11]]) 稍微复杂点方法是使用...还有一种方法是通过矩阵向量积(叉积)。

2.4K20

Python数学建模算法与应用 - 常用Python命令及程序注解

axis=0表示沿着第一个(行)方向进行求和,即对每一元素进行求和。结果赋值给变量c2。...参数axis可以指定值包括以下几种情况: 整数:可以使用0、1、2、...来指定对应。其中,0表示沿着第一个(行)方向进行操作,1表示沿着第二个方向进行操作,以此类推。...例如,对于一个二维数组,可以通过axis=0指定沿着方向,axis=1指定沿着方向。 元组:可以使用元组来指定多个进行操作。...例如,axis=(0, 1)表示同时沿着第一个(行)和第二个方向进行操作。 None(默认值):当axis参数为None时,将对整个数组进行求和,返回一个标量值。...对于二维数组,axis=0表示沿着第一个(行)方向进行求和,即逐求和。

1.3K30

NumPy详细教程

对那些维度比二维更高数组,hstack沿着第二个组合,vstack沿着第一个组合,concatenate允许可选参数给出组合时沿着。   ...一个数组分割(split)成几个小数组   使用hsplit你能将数组沿着水平分割,或者指定返回相同形状数组个数,或者指定在哪些后发生分割:  >>> a = floor(10*random.random...传统上我们用矩形行和列表示一个二维数组或矩阵,其中沿着0方向被穿过称作行,沿着1方向被穿过。...假如我们想要一个数组第一和第三一种方法是使用列表切片:  >>> A[:,[1,3]] array([[ 1,  3],        [ 5,  7],        [ 9, 11]]) ...还有一种方法是通过矩阵向量积(叉积)。

78500

python numpy 总结

对那些维度比二维更高数组,hstack沿着第二个组合,vstack沿着第一个组合,concatenate允许可选参数给出组合时沿着。   ...一个数组分割(split)成几个小数组    使用hsplit你能将数组沿着水平分割,或者指定返回相同形状数组个数,或者指定在哪些后发生分割:   >>> a = floor(10*random.random...传统上我们用矩形行和列表示一个二维数组或矩阵,其中沿着0方向被穿过称作行,沿着1方向被穿过。...假如我们想要一个数组第一和第三一种方法是使用列表切片:   >>> A[:,[1,3]] array([[ 1,  3],        [ 5,  7],        [ 9, 11]])  ...还有一种方法是通过矩阵向量积(叉积)。

77930

PyTorch入门笔记-gather选择函数

简单介绍完 gather 函数之后,来看一个简单小例子:一次下面 2D 张量中所有红色元素采集出来。...[x215h32ivd.png] 2D 张量可以看成矩阵,2D 张量第一个维度为矩阵行 (dim = 0),2D 张量第二个维度为矩阵 (dim = 1),从左向右依次看三个红色元素在矩阵具体位置...假设此时索引规律是已知并且固定,我们只需要给出这些红色元素在行上索引号就可以这些红色元素全部采集出来。 至此,对于这个 2D 张量小例子,已知了输入张量和指定行上索引号。...现在假设此时行索引规律是已知并且固定,我们只需要给出这些红色元素在列上索引号就可以这些红色元素全部采集出来了。...; 如果沿着每个维度采集 N 个元素,则 index 对应长度为 N (N ≥ 1)。

3.6K30
领券