Python numpy.transpose使用详解

作者:November丶Chopin 时间:2021-10-17 16:51:10 

前言

看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坐标系 下表示如下:

Python numpy.transpose使用详解

代码6:

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

Python numpy.transpose使用详解

注意,任何时候你都要保持清醒,告诉自己第一个方括号“[]”为 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表示成如下三维坐标的形式:

Python numpy.transpose使用详解

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

代码8:

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

将 0轴 和 1轴 交换:

Python numpy.transpose使用详解

此时,输出

代码9:

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

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

来源:https://blog.csdn.net/u012762410/article/details/78912667

标签:Python,numpy.transpose
0
投稿

猜你喜欢

  • js更好地截取字符串

    2008-03-11 19:00:00
  • 用python实现PDF解密打印文件

    2022-01-01 03:53:44
  • MySQL:使用源码分发版还是二进制分发版

    2009-09-01 10:35:00
  • 基于Python的科学占卜工具开发过程

    2023-01-01 03:15:05
  • SQL SERVER数据库开发之触发器的应用

    2008-06-23 13:09:00
  • pycharm安装包失败的解决方法

    2022-03-29 04:24:04
  • Python多线程threading join和守护线程setDeamon原理详解

    2022-05-25 18:09:39
  • 解决matplotlib库show()方法不显示图片的问题

    2021-08-25 19:53:34
  • 使用Python下载Bing图片(代码)

    2023-11-05 00:42:59
  • Python学习之函数 def

    2022-09-06 09:57:41
  • Python迭代用法实例教程

    2021-07-18 13:00:45
  • python常用排序算法的实现代码

    2022-08-21 08:50:00
  • Python设计模式中的创建型工厂模式

    2023-05-09 17:47:02
  • 自然描述与自然任务

    2010-01-26 15:51:00
  • Python中print函数简单使用总结

    2022-08-07 19:28:36
  • Python实现计算最小编辑距离

    2021-07-16 19:26:18
  • 一文详解Python中logging模块的用法

    2022-03-27 23:09:38
  • python绘制折线图和条形图的方法

    2023-05-06 11:28:24
  • struts2+jsp+jquery+Jcrop实现图片裁剪并上传实例

    2023-06-19 16:30:10
  • Python 提取dict转换为xml/json/table并输出的实现代码

    2021-01-26 17:56:17
  • asp之家 网络编程 m.aspxhome.com