在Numpy对矩阵的转置中,我们可以用transpose()函数来处理。

这个函数的运行是非常反常理的,可能会令人陷入思维误区。

假设有这样那个一个三维数组(2*4*2):

array ([[[ 0, 1, 2, 3],
               [ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],
            [12, 13, 14, 15]]])

(1). 错误的观点

我们通常的想法是

从x轴看去,0, 1 ,2 ,3

从y轴看去,0,4

从z轴看去,0, 8

这样表达或许更清晰

y                                        y

x:    0,    1,     2,     3     ----z---- 8,     9,     10,     11

4,    5,     6,     7     ----z----12,    13,    14,    15

下标的排列为[x, y, z]

(2). 正确的观点

事实上,上述庙是是错误的,我们可以通过下标来测试:

arr[0, 0, 0]
0

arr[1, 0, 0]
8

arr[0, 1, 0]
4

arr[0, 0, 1]
1

可以看出,通过改变第一个下标, 我们实际的变动为(1)中表示的z,而不是x,arr[1, 0, 0]所得的数是8而不是1;通过改变第三个下标, 我们实际的变动为(1)中表示的x,而不是z,arr[0, 0, 1]所得的数是1而不是8.

所以,一个数的下标为[z, y, x]

(3)transpose函数的使用

首先,我们利用transpose原样输出

arr.transpose((0, 1, 2))

-----------结果的分割线----------
array([[[ 0, 1, 2, 3],
            [ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],
            [12, 13, 14, 15]]])

在这里,transpose()函数的(0, 1, 2)对应着(z, y, x)轴

当我们输入arr.transpose((0, 2, 1))时,产生下列结果
array([[[ 0, 4],
            [ 1, 5],
            [ 2, 6],
            [ 3, 7]],

[[ 8, 12],
            [ 9, 13],
            [10, 14],
            [11, 15]]])

我们可以看到,当我们改变了1和2的位置,x和y转置了。

(4)总结:重点在于理解,三维数组的下标为[z, y, x], transpose()对其的默认编号为0=z, y=1, x=2.

Python Numpy中transpose()函数的使用的更多相关文章

  1. python numpy的transpose函数用法

    #MXNET的N*C*H*W在numpy打印时比较直观#mxnet卷积层# 输入数据格式是:batch * inchannel * height * width# 输出数据格式是:batch * ou ...

  2. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  3. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  4. python和numpy中sum()函数的异同

    转载:https://blog.csdn.net/amuchena/article/details/89060798和https://www.runoob.com/python/python-func ...

  5. Numpy中Meshgrid函数介绍及2种应用场景

    近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法.但总觉得印象不深刻,不是太了解meshgrid的应用场景.所以,本文将进一步介绍Numpy中meshgrid的用法 ...

  6. Python numpy 中常用的数据运算

    Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.——<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...

  7. 《python源代码剖析》笔记 python虚拟机中的函数机制

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.Python虚拟机在运行函数调用时会动态地创建新的 PyFrameObject对象, 这 ...

  8. 《python解释器源码剖析》第12章--python虚拟机中的函数机制

    12.0 序 函数是任何一门编程语言都具备的基本元素,它可以将多个动作组合起来,一个函数代表了一系列的动作.当然在调用函数时,会干什么来着.对,要在运行时栈中创建栈帧,用于函数的执行. 在python ...

  9. python numpy中sum()时出现负值

    import numpy a=numpy.random.randint(1, 4095, (5000,5000)) a.sum() 结果为负值, 这是错误的,a.sum()的类型为 int32,如何做 ...

随机推荐

  1. metadata信息的采集

    exiftool可以查看图片的信息.可以获得照片的相关信息,甚至是GPS定位信息.

  2. 项目没有build path问题(转)

    感谢作者分享:https://blog.csdn.net/u012572815/article/details/76353018 问题1.通过eclipse的svn资源库添加的项目,显示的方式和直接创 ...

  3. java定义object数组(可以存储String或int等多种类型)

    需求| 想在数组中既有String类型又有int等类型,所以需要定义数组为Object类型   背景| 现在有一个字符串params,需要对其进行逗号分隔赋值到数组里,这时遇到了个问题,即使直接定义的 ...

  4. I/O复用之epoll

    epoll 简介 epoll是为处理大批量句柄而作了改进的poll,它是在2.5.44内核中被引进的. 相关函数调用 int epoll_create(int size); 创建一个epoll的句柄. ...

  5. Cisco N3K VPC+HSRP+ospf 配置

    VPC概念 VPC:vpc是指vpc对等体设备和下游设备之间的组合PortChannel. vpc对等交换:就是组成vpc功能的两个nexus系列交换机,一个设备为主,一个为备. vpc对等连接:用于 ...

  6. 关于MySQL数据库的备份方案

    这里简单总结MySQL的备份分为3种:分为冷备份,逻辑备份,热备份. 1.冷备份: 一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单.通常直接复物理文件 ...

  7. RxJS之组合操作符 ( Angular环境 )

    一 merge操作符 把多个 Observables 的值混合到一个 Observable 中 import { Component, OnInit } from '@angular/core'; i ...

  8. stm32GPIO的8种工作模式

    推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数相同的三极管或MOS ...

  9. EasyUI Dialog 对话框默认不弹出和关闭清空对话框内容

    EasyUI中文网: http://www.jeasyui.net/plugins/181.html 默认不弹出:closed:true 模式化窗口(有遮罩):modal:true <div c ...

  10. swift - 指定VC隐藏导航栏 - 禁用tabbar的根控制器手势,防止两个tabbar跳转 手势冲突

    1. viewdidload 设置代理 self.navigationController?.delegate = self 2.代理里面指定VC 隐藏 //MARK: - 导航栏delegate e ...