Python numpy.transpose使用详解

 更新时间:2022年08月09日 09:23:00   作者:November丶Chopin  
本文主要介绍了Python numpy.transpose使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 用法还是很简单的。

注:评论中说的三维坐标图中的 0 1 2 3 标反了,已经修正,感谢大家提醒(2019.02)。

正文

Numpy 文档 numpy.transpose 中做了些解释,transpose 作用是改变序列,下面是一些文档Examples:

代码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,因为:

代码5:

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

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

这里写图片描述

代码6:

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

这里写图片描述

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

我们来看一个三维的:

代码7:

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)

输出7:

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

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

在这里插入图片描述

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

代码8:

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

将 0轴 和 1轴 交换:

在这里插入图片描述

此时,输出

代码9:

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

后面不同的参数以此类推。

到此这篇关于Python numpy.transpose使用详解的文章就介绍到这了,更多相关Python numpy.transpose内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyQt5+QtChart实现绘制区域图

    PyQt5+QtChart实现绘制区域图

    QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现区域图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • CentOS 6.5下安装Python 3.5.2(与Python2并存)

    CentOS 6.5下安装Python 3.5.2(与Python2并存)

    这篇文章主要给大家介绍了在CentOS 6.5下安装Python 3.5.2的方法教程,安装后的python3与Python2并存,文中分享了详细的方法步骤,对大家具有一定的参考学习价值,下面来一起看看吧。
    2017-06-06
  • python使用scapy模块实现ping扫描的过程详解

    python使用scapy模块实现ping扫描的过程详解

    这篇文章主要介绍了python使用scapy模块实现ping扫描的过程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Python实现两款计算器功能示例

    Python实现两款计算器功能示例

    这篇文章主要为大家详细介绍了Python实现两款计算器功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Cython编译python为so 代码加密示例

    Cython编译python为so 代码加密示例

    今天小编就为大家分享一篇Cython编译python为so 代码加密示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 如何将yolo格式转化为voc格式:txt转xml(亲测有效)

    如何将yolo格式转化为voc格式:txt转xml(亲测有效)

    这篇文章主要介绍了如何将yolo格式转化为voc格式:txt转xml,亲测有效,可以使用,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友参考下吧
    2023-12-12
  • Python 如何解决稀疏矩阵运算

    Python 如何解决稀疏矩阵运算

    这篇文章主要介绍了Python 解决稀疏矩阵运算的操作,具有很好的参考价值,希望对大家有所帮助。
    2021-05-05
  • 一文教你利用Python制作一个生日提醒

    一文教你利用Python制作一个生日提醒

    在国内,大部分人都是过农历生日,然后借助日历工具获取农历日期对应的阳历日期,以这一天来过生!这里还有一个痛点,即:每一年的农历生日对应的阳历日期都不一样,本篇文章将教你利用 Python 制作一个简单的生日提醒,需要的可以参考一下
    2022-12-12
  • 海王小姐姐悄悄问我怎么在PC端登录多个微信

    海王小姐姐悄悄问我怎么在PC端登录多个微信

    这篇文章主要介绍了怎么在PC端登录多个微信号,众所周知pc端一般只能登陆一个微信号,可这年头谁还只有一个号,又不能同时用两台电脑,这篇文章带给你答案
    2021-08-08
  • 利用Python自动监控网站并发送邮件告警的方法

    利用Python自动监控网站并发送邮件告警的方法

    这篇文章介绍的是通过定时执行python脚本,可以实现定期批量访问网站,如果发现网站打不开,第一时间发邮件到管理员邮箱进行预警。有需要的可以参考借鉴。
    2016-08-08

最新评论