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)相关推荐

  1. python transpose函数_Tensorflow:转置函数transpose的使用详解

    我就废话不多说,咱直接看代码吧! tf.transpose transpose( a, perm=None, name='transpose' ) Defined in tensorflow/pyth ...

  2. python中transpose函数_Tensorflow:转置函数 transpose的使用详解

    我就废话不多说,咱直接看代码吧! tf.transpose transpose( a, perm=None, name='transpose' ) Defined in tensorflow/pyth ...

  3. python交换函数_python a,b = b,一个实现?它与C ++交换函数有何不同?

    当我想尝试以下版本的python版本时遇到了这个问题:https : //leetcode.com/problems/first-missing- positive/discuss/17071/My- ...

  4. 创建一个Python脚本,实现以下功能。(1)定义一个函数,用于计算圆柱体的表面积、体积,函数名为comput,.输入参数为底半径(r)、高(h),返回值为表面积(S)、体积(V),返回多值的函

    创建一个Python脚本,实现以下功能. (1)定义一个函数,用于计算圆柱体的表面积.体积,函数名为comput,.输入参数为底 半径(r).高(h),返回值为表面积(S).体积(V),返回多值的函数 ...

  5. python两数交换 函数_Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?...

    从接触 Python 时起,我就觉得 Python 的元组解包(unpacking)挺有意思,非常简洁好用. 最显而易见的例子就是多重赋值,即在一条语句中同时给多个变量赋值: >>> ...

  6. python 三维度显示,Python实现高斯函数的三维显示方法

    在网上查阅资料,发现很少用Python进行高斯函数的三维显示绘图的,原因可能是其图形显示太过怪异,没有MATLAB精细和直观. 回顾一下二维高斯公式: σ此处取3. 在MATLAB下的程序为: u=[ ...

  7. python中factor函数_【T】R中的因子(factor),levels, reorder

    该博文已整理到新地址: http://qinqianshan.com/factor.levels.reorder/ 变量可归结为类别(名义型),有序型,连续型变量(区间变量).类别变量和有序类别(有序 ...

  8. python常用导入函数及其他操作备忘录

    python常用导入函数及其他操作备忘录 python常用导入函数 解压缩zip并读取csv文件 查看缺失值 权重系数取绝对值后排序(查看特征权重重要度) python常用导入函数 from IPyt ...

  9. python笔记2 - 函数,表达式,语句

    1.python诞生 创始人:Guido van Rossum(荷兰人) 时间:1989年圣诞节 地点:阿姆斯特丹 应用领域:     系统运维     网络编程(搜索引擎,爬虫,服务器编程等)   ...

最新文章

  1. k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度
  2. Java 有关于线程
  3. 安天移动安全:Janus高危漏洞深度分析
  4. Python第三方库的安装,升级以及版本查看
  5. Vue2.x总结(1)
  6. “浴霸”改“花洒”?华为Mate 30最新保护壳谍照曝光...
  7. C#学习-程序集和反射
  8. 20款免费响应式的 HTML5 网站模板下载
  9. angular2组件通讯
  10. Py之pandas:dataframe学习【转载】
  11. 机器学习第三回——logistic回归算法
  12. 2021-08-03 SELECT简单查询
  13. PAT 1012 数字分类
  14. SAP的Abap培训
  15. pthread_sigmask
  16. xp无线网卡开启的服务器,无线网卡在 Windows XP 系统下的安装与使用过程
  17. .NET 6 RC2 版本发布
  18. 滚动加载分辨率scrollTop小数问题
  19. 程序员的自我修养 - 读书笔记文字版
  20. Mac电脑:您的安全性偏好设置仅允许安装来自App Store和被认可的开发者的应用(解决方法)

热门文章

  1. python真的是吹过了-别再无脑吹了,python和matleb有什么不同你知道吗?
  2. java ip地址转数字_ip地址与整数相互转换
  3. 1432: 【蓝桥杯】:剪格子(迷宫问题变体)
  4. 【c++】笔记:输入带空格的字符串
  5. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...
  6. umijs 修改默认配置_UmiJS基础教程(2) 目录结构
  7. sudo修改文件夹名字_用 Python 高效智能管理文件夹
  8. php memcache 有效期,PHP可以拿到memcache中的key的过期时间吗?
  9. java 对象赋值给scala_将Scala变量转换为Java对象… varargs
  10. 需要凭据_PE管件连接时有哪些需要注意的地方