看《利用python进行数据分析》,有些不大清楚numpy中transpose和swapaxes函数的原理,这篇文章写的比较清楚,转载过来方便个人随时阅读和温习

版权声明:本文为CSDN博主「ML_BOY」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文:numpy中transpose和swapaxes函数讲解

1.transpose()

这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。 我们看如下一个numpy的数组:

arr=np.arange(16).reshape((2,2,4))

arr=array([[[0,1,2,3],

[4,5,6,7]],

[[8,9,10,11],

[12,13,14,15]]])

那么有:

arr.transpose(2,1,0)

array([[[0,8],

[4,12]],

[[1,9],

[5,13]],

[[2,10],

[6,14]],

[[3,11],

[7,15]]])

为什么会是这样的结果呢,这是因为arr这个数组有三个维度,三个维度的编号对应为(0,1,2),比如这样,我们需要拿到7这个数字,怎么办,肯定需要些三个维度的值,7的第一个维度为0,第二个维度为1,第三个3,所以arr[0,1,3]则拿到了7。

arr[0,1,3] #结果就是7

这下应该懂了些吧,好,再回到transpose()这个函数,它里面就是维度的排序,比如我们后面写的transpose(2,1,0),就是把之前第三个维度转为第一个维度,之前的第二个维度不变,之前的第一个维度变为第三个维度,好那么我们继续拿7这个值来说,之前的索引为[0,1,3],按照我们的转换方法,把之前的第三维度变为第一维度,之前的第一维度变为第三维度,那么现在7的索引就是(3,1,0)

同理所有的数组内的数字都是这样变得,这就是transpose()内参数的变化。

2.swapaxes()

理解了上面,再来理解swapaxes()就很简单了,swapaxes接受一对轴编号,其实这里我们叫一对维度编号更好吧,比如:

arr.swapaxes(2,1) #就是将第三个维度和第二个维度交换

array([[[0,4],

[1,5],

[2,6],

[3,7]],

[[8,12],

[9,13],

[10,14],

[11,15]]])

还是拿我们的数字7来说,之前的索引是(0,1,3),那么交换之后,就应该是(0,3,1)

多说一句,其实numpy高维数组的切片也是这样选取维度的。

这就是transpose和swapaxes函数的讲解了

python transpose函数_转载:numpy中transpose和swapaxes函数讲解相关推荐

  1. python中transpose函数_对numpy中的transpose和swapaxes函数详解

    transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: `arr=np.arange(16).reshape(( ...

  2. python创建列向量_关于Numpy中的行向量和列向量详解

    关于Numpy中的行向量和列向量详解 行向量 方式1 import numpy as np b=np.array([1,2,3]).reshape((1,-1)) print(b,b.shape) 结 ...

  3. python 数列筛选_对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...

  4. python 空矩阵_在NumPy中创建空数组/矩阵的方法

    如何在NumPy中创建空数组/矩阵? 在添加行的情况下,你最好的选择是创建一个与数据集最终一样大的数组,然后向它添加数据 row-by-row: >>> import numpy & ...

  5. python花式索引_初探Numpy中的花式索引

    Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:基本索引:通过单个整数值来索引数组 import numpy as np arr ...

  6. java中的dispose函数_[转载]java中的dispose()方法

    这是我第100篇IT技术文章,也正好让我实现了一个完整的从客户端输入参数,使用遗传算法计算生产排程的实例,前端由客户输入种群大小,遗传代数,交叉概率,变异概率,零件数,机器数,时间矩阵,机器矩阵,经运 ...

  7. onclick如何调用含参函数_在 golang 中如何调用私有函数(绑定隐藏的标识符)

    名字在 golang 中的重要性和在其他任何一种语言是一样的.他们甚至含有语义的作用:在一个包的外部某个名字的可见性是由这个名字首字母是否是大写来决定的. 有时为了更好的组织代码或者在其他包使用某些隐 ...

  8. mysql中没有内置函数_[mysql]MySQL中的内置函数

    用在select  语句,以及子句where   order  by    hacing  中    update   delete 函数中可以将字段名作为字段来用,变量的值就是这个列对应的每一行记录 ...

  9. mysql有什么好用的小函数_盘点MySQL中比较实用的函数

    之前小编在工作中遇到一些处理数据的问题,例如完成日期格式化,获取几天后的时间,生成指定格式的编码等问题,这时候小编经常会写一大堆逻辑代码来进行处理,还自己感觉自己很流弊的样子,后来却发现同事遇到相同的 ...

最新文章

  1. 《linux 内核全然剖析》 mktime.c
  2. excel 怎么让数字不用科学计数法
  3. centos 安装mysql5.7_Zabbix 4.2.5 安装部署实践详解
  4. 成功解决ValueError: row index was 65536, not allowed by .xls format
  5. C++关系运算符重载
  6. mysql独立服务器_独立服务器linux系统mysql设置方法
  7. 媒体声音|阿里云数据库:一站式全链路数据管理与服务,引领云原生2.0时代
  8. Spark ML - 协同过滤
  9. 二进制枚举子集 CS Maxor 或运算,DP(SOS)
  10. python循环中的else_python 循环中else的简单示例
  11. 简单的for()循环使用方式foreach
  12. 闪灯什么意思_开夜车被对方闪了一下是什么意思?老司机:灯语都不懂,晚上别开车...
  13. Redis系统管理相关指令简介
  14. java thread等特,进阶之路|奇妙的Thread之旅
  15. wordpress静态文件加速,整合CDN
  16. R-Sys.time计算程序运行时间
  17. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建
  18. 2018华为软件精英大赛
  19. 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义home二型)
  20. 电商平台退货管理教程

热门文章

  1. Unity Text文字自动滚动
  2. SAP R3 安装出错 FJS-00012 Error when executing script.
  3. 学渣考深大计算机,深圳大学好不好?为什么有人说是二本?
  4. 你真的了解测试用例、测试流程模型、测试方法吗?详解
  5. 老婆过生日,随写游戏一只,祝生日快乐。
  6. 长时间穿高跟鞋存在健康隐患
  7. 基于pandas的男女电影评价差异分析
  8. IE8与主流网银的兼容性分析(转)
  9. javaweb服务器运行打印机制log4j的说明[在终端动态显示文件内容tailf]
  10. CSDN上大伙都在用的自定义设置