看Python代码时,碰见 numpy.transpose 函数用于高维数组时不明白原理,通过一番画图分析和代码验证,发现 transpose 用法可以清晰地介绍给大家。

transpose 作用是改变序列,下面是一些小例子:


代码1:

x = np.arange(4).reshape((2,2))

输出1:

#x 为:
array([[0, 1],[2, 3]])

代码2:

import numpy as np
x.transpose()

输出2:

array([[0, 2],[1, 3]])

对于二维 ndarray,transpose在不指定参数是默认是矩阵转置。如果指定参数,有如下相应结果: 
代码3:

x.transpose((0,1))

输出3:

# x 没有变化
array([[0, 1],[2, 3]])

代码4:

x.transpose((1,0))

输出4:

# x 转置了
array([[0, 2],[1, 3]])

这个很好理解: 
对于x,因为:

x[0][0] == 0
x[0][1] == 1
x[1][0] == 2
x[1][1] == 3

我们不妨设第一个方括号“[]”为 0轴 ,第二个方括号为 1轴 ,则x可在 0-1坐标系 下表示如下: 

因为 x.transpose((0,1)) 表示按照原坐标轴改变序列,也就是保持不变
而 x.transpose((1,0)) 表示交换 ‘0轴’ 和 ‘1轴’,所以就得到如下图所示结果:

注意,任何时候你都要保持清醒,告诉自己第一个方括号“[]”为 0轴 ,第二个方括号为 1轴 
此时,transpose转换关系就清晰了。


我们来看一个三维的: 
代码5:

import numpy as np# A是array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
A = np.arange(16)# 将A变换为三维矩阵
A = A.reshape(2,2,4)
print(A)

输出5:

A = array([[[ 0,  1,  2,  3],[ 4,  5,  6,  7]],[[ 8,  9, 10, 11],[12, 13, 14, 15]]])

我们对上述的A表示成如下三维坐标的形式:

所以对于如下的变换都很好理解啦: 
代码6:

A.transpose((0,1,2))  #保持A不变
A.transpose((1,0,2))  #将 0轴 和 1轴 交换

将 0轴 和 1轴 交换:

代码7:

A.transpose((1,0,2)) [0][1][2]  #根据上图这个结果应该是10

后面的内容举一反三。

python中numpy.transpose()函数详解相关推荐

  1. Python中的bbox_overlaps()函数详解

    Python中的bbox_overlaps()函数详解 想要编写自己的目标检测算法,就需要掌握bounding box(边界框)之间的关系.在这之中,bbox_overlaps()函数是一个非常实用的 ...

  2. python中的zip函数详解_python中的 zip函数详解

    python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...

  3. python getattr函数_[转]Python中的getattr()函数详解

    看了下函数本身的doc getattr(object, name[, default]) -> value Get a named attribute from an object; getat ...

  4. 【python基础】python中常用字符串函数详解

    文章目录 1 字符串查询(index,find) 2. 字符串大小写转换操作(upper.lower.swapcase.capitalize和title) 3. 字符串对齐(center,just和z ...

  5. python中的map()函数详解

    map()函数 """map(func, *iterables) --> map objectMake an iterator that computes the ...

  6. Python中pd.describe()函数详解及其物理意义

    pandas.DataFrame.describe官方文档 DataFrame.describe(percentiles=None, include=None, exclude=None) # ret ...

  7. Python 中np.prod函数详解

    官方文档,输入a是数组,返回指定轴上的乘积,不指定轴默认是所有元素的乘积. 默认全部元素相乘,123*4=24 axis =0是按列乘, axis = 1是按行乘.

  8. python getattr_Python中的getattr()函数详解:

    标签:Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an ...

  9. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

最新文章

  1. ZooKeeper简介和概念知识
  2. 编程心法 之什么是MVP What is MVP development?
  3. Python 小把戏之下载小说
  4. 【文字识别小程序】快速识别文字,一款用了就再也离不开的宝藏神器~(出道即巅峰永久免费)
  5. VC环境下的静态库(lib)使用和动态库(Dll)的使用(清晰版)
  6. SparkWeb 编译
  7. 启动tomcat出现too many connections的原因及解决方法
  8. (38)VHDL实现主从JK触发器
  9. ssrs筛选器_SSRS ReportServer:服务性能计数器指南
  10. Scala初步学习(二)
  11. 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
  12. ASP.NET开发框架之HIPPO技术内幕(三)--数据库连接
  13. FYI| Free online events
  14. win7从光盘进入修复计算机,深度完美正式版win7系统修复工具自修复崩溃系统
  15. 暴雪即将公布《暗黑破坏神3》新职业
  16. strtok strtok_s strsep
  17. 设计了一款 IGBT单脉冲、双脉冲测试波形信号发生器
  18. altera fpga大小如何衡量_Xilinx和Altera FPGA的基本逻辑单元对比
  19. MATLAB音乐合成——小星星
  20. 基于skywalking搭建APM系统入门级

热门文章

  1. 普通人学python有什么用-学python日常工作有什么用?
  2. 云原生游戏《云联物语》揭开神秘面纱 云鹭科技温向东带你深度了解云原生游戏领域...
  3. 语音识别之--音频编解码
  4. 前端用户忘记密码,手机验证码修改密码功能
  5. 服务器资源评估文档,服务器存储资源评估
  6. 【动态规划】P1004 方格取数(四维dp模板题)
  7. live555学习笔记-RTSPClient分析
  8. java mongodb 时间查询_Spring-Data-MongoDB快速入门
  9. android 的a标签,Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)...
  10. SQL查找是否“存在“,别再count了!