转置(transpose)的理解

article/2025/10/13 7:55:39

目录

1 .T,适用于一、二维数组

arr.T #求转置

transpose 的原理其实是根据维度(shape)索引决定的,举个栗子:

2. 高维数组

3. swapaxes


转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制操作)。

对numpy数组的转置有三种方式,transpose方法、T属性以及swapaxes方法。

1 .T,适用于一、二维数组

arr.T #求转置

In [1]: import numpy as npIn [2]: arr = np.arange(20).reshape(4,5)#生成一个4行5列的数组In [3]: arr
Out[3]:
array([[ 0,  1,  2,  3,  4],[ 5,  6,  7,  8,  9],[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]])  # 4行5列In [4]: arr.T #求转置
Out[4]:
array([[ 0,  5, 10, 15],[ 1,  6, 11, 16],[ 2,  7, 12, 17],[ 3,  8, 13, 18],[ 4,  9, 14, 19]])  # 5行4列

transpose 的原理其实是根据维度(shape)索引决定的,举个栗子:

x = np.arange(4).reshape((2,2)) //生成一个2x2的数组
print(x)
[[0 1]   
[2 3]]

我们生成了一个维度为二维的数组,其中有两个索引值(矩阵的行与列)。

transpose()函数的作用就是调换数组的行列值的索引值,类似于求矩阵的转置:

x = np.arange(4).reshape((2,2))
x = np.transpose(x) 
print(x)
[[0 2][1 3]]

我们可以直观的看到,数组的行列索引值对换,1的位置从x(0,1)跑到了x(1,0)。

那么三维数组呢?

2. 高维数组

对于高维数组,transpose需要用到一个由轴编号组成的元组,才能进行转置。

这里,着实好好理解了一下。开始的时候怎么都想不明白。因为他跟矩阵转置理解起来不太一样。

首先定义一个原数组arr

原3维数组arr:[[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]]
3个维度: (2, 3, 4)

原三维数组 arr 三个维度 (2,3,4) CHW,对应的是 (0,1,2) 三个索引

形状索引
20
31
42

transpose 函数可以理解为改变数组数值的映射关系,原数组中,6这个数所在的索引是(0,1,2)

arr1 = arr.transpose((1,0,2)) 的操作相当于把原三维数组 arr 的第一个维度和第二个维度调换【新数组6这个数所在的索引是(1,0,2)】
arr2 = arr.transpose((0,2,1)) 的操作相当于把原三维数组 arr 的第二个维度和第三个维度调换【新数组6这个数所在的索引是(0,2,1)】

原数组 arr (2,3,4)
å¨è¿éæå¥å¾çæè¿°

新数组 arr1 (3,2,4)

 å¨è¿éæå¥å¾çæè¿°

新数组arr2 (2,4,3)

 å¨è¿éæå¥å¾çæè¿°

3. swapaxes

虽然还有点不解的地方,但是,理解了上方那部分之后,swapaxes方法也就很好理解了。它接受一对轴编号。进行轴对换。其实也就是shape参数。

In [67]: arr2 = np.arange(16).reshape(2,2,4)           In [68]: arr2                                          
Out[68]:                                               
array([[[ 0,  1,  2,  3],                              [ 4,  5,  6,  7]],                             [[ 8,  9, 10, 11],                              [12, 13, 14, 15]]])                            In [69]: arr2.shape                                    
Out[69]: (2, 2, 4)                                     In [70]: arr2.swapaxes(1,2)                            
Out[70]:                                               
array([[[ 0,  4],                                      [ 1,  5],                                      [ 2,  6],                                      [ 3,  7]],                                     [[ 8, 12],                                      [ 9, 13],                                      [10, 14],                                      [11, 15]]])   In [4]: arr2.swapaxes(1,0)#转置,对比transpose(1,0,2)
Out[4]:
array([[[ 0,  1,  2,  3],[ 8,  9, 10, 11]],[[ 4,  5,  6,  7],[12, 13, 14, 15]]])                                 

文章转载自:

详解numpy中transpose()函数_深度Face的博客-CSDN博客

转置(transpose)的理解_G果的博客-CSDN博客


http://chatgpt.dhexx.cn/article/RWu1bbcP.shtml

相关文章

Python numpy.transpose 详解

前言 看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 函数的使用方法还是很简单的。 注:评论中说的三维坐标图中的 0 1 2 3 标反了,已经修正&#xff0c…

2020年最新可用的谷歌镜像站

g.vovososo.com 谷歌镜像入口 不用翻,墙,就可实现访问谷歌搜索 ,也可以通过扫描以下二维码下载APP进行访问

谷歌搜索镜像

分享自己收藏的谷歌搜索镜像 可自由在谷歌查询信息 http://ac.scmor.com/ 转载于:https://www.cnblogs.com/aeip/p/9506344.html

谷歌引擎镜像网址

谷歌引擎镜像网址 当前可用的网址 链接: https://gfsoso.xz95.top/ 若是显示我们的系统检测到您的计算机网络中存在异常流量,可重新搜索或者选择图片进行搜索,然后在点开全部搜索(有时候可能会崩吧,我个人感觉用图片搜索再点全…

谷歌镜像地址分享

谷歌镜像地址分享 谷歌镜像地址分享谷歌应用商店参考文档 谷歌镜像地址分享 使用搜索引擎来查找所需要的资料是一件很普遍的事,而搜索引擎主要有百度、必应、雅虎和谷歌等等。 每个搜索引擎各有利弊,而一般大家公认的是谷歌搜索引擎搜索准确率更高一些&…

分享27个谷歌(Google)镜像

为什么80%的码农都做不了架构师?>>> 多年来搜集的谷歌镜像,大多数都能打开,打不开的也许过一段上一段时间能打开。真诚希望这些神奇的搜索引擎,能助你在前端界有所建树。有空关注下面前端相关公众账号jsdig(及时挖掘&…

谷歌学术镜像_Google镜像站

在国外留学要想毕业顺利, 论文可是其中很重要的一环. 相比于国内, 英国对于论文的要求更为严格, 要有一定的格式和学术要求. 除此之外, 还要有理有据, 要用高质量的引文作为对自己观点的论证. 这时就要查文献了. 要说查文献, 谷歌学术绝对是最佳帮手, 免费还操作简单. 当然全面…

国内最新可用Google谷歌镜像网站入口网站网址

很多同学都需要使用谷歌搜索来查找一些英文的学习资料,但是由于某些原因国内无法使用。办公人导航就和大家分享另外一种在国内可以使用谷歌搜索的方法那就使用使用谷歌镜像网站。 Google谷歌镜像网站可以帮助我们在国内访问和使用谷歌搜索,但这并不是真…

Google谷歌搜索引擎镜像入口网址大全导航,谷歌搜索引擎镜像站

当我们需要使用谷歌搜索一些学习资料的时候,就需要借助Google谷歌搜索引擎镜像网站,很多同学不知道有哪些可以使用的谷歌搜索引擎镜像站,下面办公人导航就和大家分享Google谷歌搜索引擎镜像入口网址大全导航。 1.google谷歌搜索引擎镜像站网址…

[2023-01 持续更新] 谷歌学术google镜像/Sci-Hub可用网址/Github镜像可用网址总结

目录 一、谷歌学术镜像二、Sci-Hub三、Github镜像四、GitHub下载文件加速 一、谷歌学术镜像 首先强烈推荐谷歌hub 网址一:谷歌学术-谷歌镜像网址https://www.google-hub.com/ 网址二:http://scholar.scqylaw.com/ (附 sci-hub) 网址三:htt…

Python求最大公约数和最小公倍数

大家好,我是Python领域的博主,如果觉得我的写的不错的话, 请点赞关注支持我一下。如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码 解题思路: 最大公因数…

C语言求最大公约数常见思路

一、辗转相除法 辗转相除法又称为欧几里得算法,用于求两数的最大公约数gcd(全称为greatest common divisor) 注意两数必须为非负整数a,b。用法为:用两数中较大的数(a1)除以较小的数(b1),得到余…

用函数求最大公约数c语言,C语言求最大公约数公式分享

从键盘输入两个正整数 a 和 b,求其最大公约数和最小公倍数。 算法思想 利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。再利用辗转相除法求出最大公约数&#…

c语言分解质因数法求最大公约数,最大公约数求法大全

原标题:最大公约数求法大全 小复习 上一次我们介绍了一种特殊的最大公约数求法,叫做辗转相除法。你还记得吗? 辗转相除法 用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数&a…

java实现求最大公约数

题目:任意输入两个整数,如何求他们的最大公约数? 最大公约数:也称最大公因数,最大公因子,是指两个或多个整数共有约数中最大的一个。 方法一:枚举法 先输入两个整数,然后比较两个…

C语言用for循环求最大公约数,C语言循环结构 -C语言求最大公约数

这是一个C语言 while 循环示例:求正整数 m 和 n 的最大公约数。 问题分析 输入:两个正整数。 输出:一个正整数(最大公约数)。 最大公约数(gcd)是指几个数共有的因数之中最大的一个数,比如 8 和 12 的最大公约数是 4,一…

求最大公约数的4种方法C语言(辗转相除法、辗转相减法、穷举法、递归法)

最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。 目录 问题描述 辗转相除法(欧几里得算法) 代码实现 辗转相减法 代码实现 暴力穷举法 代码实现 递归法 代码实现 测试及结果 问题描述…

自由度为什么是n-1?敲黑板敲黑板啦

在抽样分布定理中相信很多小伙伴都很疑惑,这个为什么第三个服从的是自由度为n-1的卡方?话不多说,我们一起来看看吧 同理,这个默认的条件限制,也是当初为什么要进行修正样本方差。如果各位小伙伴还有疑问,可…

什么是GUN?

1 什么是GUN? 既然是说linux,那就不得不提下GNU,就是因为GNU才使得包括linux在内的很多开源软加蓬勃发展起来。 GNU技术是在1983年9月27号公开发起的,创始人是Richard Stallman,目的是创建一套完全自由的操作系统。 由于当时Uni…

工业机器人的自由度是什么?

机器人家上了解到,随着机器人产业的飞速发展,工业机器人已经广泛应用于各行各业,从材料搬运到机器维护,从焊接到切割,从装配到喷涂,我们发现,这些工业机器人形状各异,功能性能各不相…