[Python] 维度交换函数:transpose(m,n,r)和permute(m,n,r)
a.transpose(m,n,r)
的参考博客:python的numpy中的transpose函数功能分析
a.permute(m,n,r)
功能和a.transpose(m,n,r)
一样。故以下以a.transpose(m,n,r)
为例来讲解。
根据评论区指出,
a.permute(m,n,r)
是torch。
对于一维矩阵,该函数无效果。
对于二维矩阵,结果为原矩阵的转置。
对于三维矩阵则比较难理解,需要理清几个重要的概念。
首先是介绍维度的概念。
我们先生成一个ndarray。
b=np.array([[[ 0, 1, 2,3],[ 4,5,6,7],[ 8,9, 10,11]],[[12, 13, 14, 15],[16, 17,18, 19],[20, 21,22, 23]]])
再使用print(b.shape)
,查看其原有维度为(2, 3, 4)
维度的默认排序是(0,1,2)
由于索引从0开始,所以b的元素的索引为:
# 维度的默认排序是 (0,1,2)
b=np.array([[[ 0, 1, 2,3], (0,0,0) (0,0,1) (0,0,2) (0,0,3)[ 4,5,6,7], (0,1,0) (0,1,1) (0,1,2) (0,1,3)[ 8,9, 10,11]], (0,2,0) (0,2,1) (0,2,2) (0,2,3)[[12, 13, 14, 15], (1,0,0) (1,0,1) (1,0,2) (1,0,3)[16, 17,18, 19], (1,1,0) (1,1,1) (1,1,2) (1,1,3)[20, 21,22, 23]]]) (1,2,0) (1,2,1) (1,2,2) (1,2,3)
执行以下代码,进行维度变换
c=b.transpose(2,1,0)
执行c=b.transpose(2,1,0)
,维度的排序由默认的(0,1,2)
变为(2,1,0)
。
对应的shape由(2, 3, 4)
变为(4, 3, 2)
。
元素的索引变化成如下的结果。
# 维度变换表现为:元素索引的 第三个数 和 第一个数 交换位置
# b=np.array([[[ 0, 1, 2,3], (0,0,0) (1,0,0) (2,0,0) (3,0,0)
# [ 4,5,6,7], (0,1,0) (1,1,0) (2,1,0) (3,1,0)
# [ 8,9, 10,11]], (0,2,0) (1,2,0) (2,2,0) (3,2,0)
#
# [[12, 13, 14, 15], (0,0,1) (1,0,1) (2,0,1) (3,0,1)
# [16, 17,18, 19], (0,1,1) (1,1,1) (2,1,1) (3,1,1)
# [20, 21,22, 23]]]) (0,2,1) (1,2,1) (2,2,1) (3,2,1)
#
# 按索引重新排列得:
# [[[ 0 12] (0,0,0) (0,0,1)
# [ 4 16] (0,1,0) (0,1,1)
# [ 8 20]] (0,2,0) (0,2,1)
#
# [[ 1 13] (1,0,0) (1,0,1)
# [ 5 17] (1,1,0) (1,1,1)
# [ 9 21]] (1,2,0) (1,2,1)
#
# [[ 2 14] (2,0,0) (2,0,1)
# [ 6 18] (2,1,0) (2,1,1)
# [10 22]] (2,2,0) (2,2,1)
#
# [[ 3 15] (3,0,0) (3,0,1)
# [ 7 19] (3,1,0) (3,1,1)
# [11 23]]] (3,2,0) (3,2,1)
[Python] 维度交换函数:transpose(m,n,r)和permute(m,n,r)相关推荐
- python transpose函数_Tensorflow:转置函数transpose的使用详解
我就废话不多说,咱直接看代码吧! tf.transpose transpose( a, perm=None, name='transpose' ) Defined in tensorflow/pyth ...
- python中transpose函数_Tensorflow:转置函数 transpose的使用详解
我就废话不多说,咱直接看代码吧! tf.transpose transpose( a, perm=None, name='transpose' ) Defined in tensorflow/pyth ...
- python交换函数_python a,b = b,一个实现?它与C ++交换函数有何不同?
当我想尝试以下版本的python版本时遇到了这个问题:https : //leetcode.com/problems/first-missing- positive/discuss/17071/My- ...
- 创建一个Python脚本,实现以下功能。(1)定义一个函数,用于计算圆柱体的表面积、体积,函数名为comput,.输入参数为底半径(r)、高(h),返回值为表面积(S)、体积(V),返回多值的函
创建一个Python脚本,实现以下功能. (1)定义一个函数,用于计算圆柱体的表面积.体积,函数名为comput,.输入参数为底 半径(r).高(h),返回值为表面积(S).体积(V),返回多值的函数 ...
- python两数交换 函数_Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?...
从接触 Python 时起,我就觉得 Python 的元组解包(unpacking)挺有意思,非常简洁好用. 最显而易见的例子就是多重赋值,即在一条语句中同时给多个变量赋值: >>> ...
- python 三维度显示,Python实现高斯函数的三维显示方法
在网上查阅资料,发现很少用Python进行高斯函数的三维显示绘图的,原因可能是其图形显示太过怪异,没有MATLAB精细和直观. 回顾一下二维高斯公式: σ此处取3. 在MATLAB下的程序为: u=[ ...
- python中factor函数_【T】R中的因子(factor),levels, reorder
该博文已整理到新地址: http://qinqianshan.com/factor.levels.reorder/ 变量可归结为类别(名义型),有序型,连续型变量(区间变量).类别变量和有序类别(有序 ...
- python常用导入函数及其他操作备忘录
python常用导入函数及其他操作备忘录 python常用导入函数 解压缩zip并读取csv文件 查看缺失值 权重系数取绝对值后排序(查看特征权重重要度) python常用导入函数 from IPyt ...
- python笔记2 - 函数,表达式,语句
1.python诞生 创始人:Guido van Rossum(荷兰人) 时间:1989年圣诞节 地点:阿姆斯特丹 应用领域: 系统运维 网络编程(搜索引擎,爬虫,服务器编程等) ...
最新文章
- k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度
- Java 有关于线程
- 安天移动安全:Janus高危漏洞深度分析
- Python第三方库的安装,升级以及版本查看
- Vue2.x总结(1)
- “浴霸”改“花洒”?华为Mate 30最新保护壳谍照曝光...
- C#学习-程序集和反射
- 20款免费响应式的 HTML5 网站模板下载
- angular2组件通讯
- Py之pandas:dataframe学习【转载】
- 机器学习第三回——logistic回归算法
- 2021-08-03 SELECT简单查询
- PAT 1012 数字分类
- SAP的Abap培训
- pthread_sigmask
- xp无线网卡开启的服务器,无线网卡在 Windows XP 系统下的安装与使用过程
- .NET 6 RC2 版本发布
- 滚动加载分辨率scrollTop小数问题
- 程序员的自我修养 - 读书笔记文字版
- Mac电脑:您的安全性偏好设置仅允许安装来自App Store和被认可的开发者的应用(解决方法)
热门文章
- python真的是吹过了-别再无脑吹了,python和matleb有什么不同你知道吗?
- java ip地址转数字_ip地址与整数相互转换
- 1432: 【蓝桥杯】:剪格子(迷宫问题变体)
- 【c++】笔记:输入带空格的字符串
- mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...
- umijs 修改默认配置_UmiJS基础教程(2) 目录结构
- sudo修改文件夹名字_用 Python 高效智能管理文件夹
- php memcache 有效期,PHP可以拿到memcache中的key的过期时间吗?
- java 对象赋值给scala_将Scala变量转换为Java对象… varargs
- 需要凭据_PE管件连接时有哪些需要注意的地方