np.transpose()函数详解

article/2025/10/13 7:27:52

1. 碰见 numpy.transpose 用于高维数组时挺让人费解,通过分析和代码验证,发现 transpose 用法还是很简单的。说白了就是映射坐标轴

2. 举个例子:

x = np.arange(12).reshape((2,3,2))

创建一个2 * 3 * 2的数组:
在这里插入图片描述
使用 numpy.transpose ()进行变换,其实就是交换了坐标轴,如:x.transpose(1, 2, 0),其实就是将x第二维度挪到第一维上,第三维移到第二维上,原本的第一维移动到第三维上,最后的shape为:(3,2,2)

3. 分析原理

原先的数据的索引和数据对应情况为:

x[0][0][0] = 0				x[1][0][0] = 6
x[0][0][1] = 1				x[1][0][1] = 7
x[0][1][0] = 2				x[1][1][0] = 8
x[0][1][1] = 3				x[1][1][1] = 9
x[0][2][0] = 4				x[1][2][0] = 10
x[0][2][1] = 5				x[1][2][1] = 11

交换数据的索引,对应的值还是不变,即交换了坐标轴,如[0][2][1] —>[2][1][0]

x[0][0][0] = 0				x[0][0][1] = 6
x[0][1][0] = 1				x[0][1][1] = 7
x[1][0][0] = 2				x[1][0][1] = 8
x[1][1][0] = 3				x[1][1][1] = 9
x[2][0][0] = 4				x[2][0][1] = 10
x[2][1][0] = 5				x[2][1][1] = 11

根据变换后的索引进行归类

[[[0, 6], [1, 7]],[[2, 8],[3, 9]],[[4, 10],[5, 11]]
]

4. 再进行深思

例子中,我们使用的shape是(2, 3, 2),可以理解成:2通道的图片,每张图层是3 * 2大小,正常渲染是先把第一个通道的图片把3 * 2个像素点绘制,在把第二个通道的3 * 2像素绘制。
在使用transpose(1, 2, 0)后,新的数据是shape是(3,2,2),可以理解成每张图层是3 * 2大小,2通道的图片,原先的是先绘制一个通道数据,如今变换后的数据是每次将一个坐标的不同通道的像素进行一次性绘制。
如图:
在这里插入图片描述
打消了我对transpose影响图片呈现效果的疑虑

5. 来段代码测试一下,看看变化

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from torchvision import transforms
%matplotlib inlineimg_path = "./a.jpg"
# 对img_torch输出也是原图
img_torch = transforms.ToTensor()(Image.open(img_path))
resize = img_torch.numpy().transpose(1,2,0)
plt.imshow(resize)
plt.show()

http://chatgpt.dhexx.cn/article/6cSUiPie.shtml

相关文章

【Python学习】transpose函数

shape:(batch_size * x * y ) 有batch_size个二维矩阵(x * y)相当于(z * x * y) 1. 多维数组的索引 import numpy as np # 创建 x np.arange(12).reshape((2,2,3)) print(x)# 得到三维数组 [[[ 0 1 2][ 3 4 5]][[ 6 7 8][ 9 10 11]]] # 相当于 b…

最简单例子解释python的transpose函数

目录 一,我们要弄清楚transpose的轴是什么意思?二,(x,y,z)的物理含义:三,transpose变换的例子四,代码验证五,关于经过了transpose变换之后,这个三维数组的形状是如何变化确定的? 二维…

转置(transpose)的理解

目录 1 .T,适用于一、二维数组 arr.T #求转置 transpose 的原理其实是根据维度(shape)索引决定的,举个栗子: 2. 高维数组 3. swapaxes 转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制…

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语言(辗转相除法、辗转相减法、穷举法、递归法)

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