对numpy中的transpose和swapaxes函数详解

 更新时间:2018年08月02日 15:18:58   作者:ML_BOY  
今天小编就为大家分享一篇对numpy中的transpose和swapaxes函数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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()内参数的变化。

理解了上面,再来理解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高维数组的切片也是这样选取维度的。

以上这篇对numpy中的transpose和swapaxes函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用FFmpeg来无损压缩视频文件的操作方法

    使用FFmpeg来无损压缩视频文件的操作方法

    FFmpeg是业内有名的开源图像视频处理程序,在许多视频剪辑软件、图像处理软件中,都使用的FFmpeg,还有比如OBS这样的导播软件里面也使用了FFmpeg,FFmpeg的功能十分强大,远不止视频压缩的功能,本文介绍使用FFmpeg来无损压缩视频文件的操作方法,感兴趣的朋友一起看看吧
    2023-12-12
  • 基于python时间处理方法(详解)

    基于python时间处理方法(详解)

    下面小编就为大家带来一篇基于python时间处理方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Python使用Gradio实现免费的内网穿透

    Python使用Gradio实现免费的内网穿透

    内网穿透是一种将内部网络服务暴露到公共网络的技术,可以让外部用户访问内部网络上的服务,本文将介绍如何使用Gradio实现免费的内网穿透,需要的可以参考下
    2024-03-03
  • Python importlib模块重载使用方法详解

    Python importlib模块重载使用方法详解

    这篇文章主要介绍了Python importlib模块重载使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 在Python中marshal对象序列化的相关知识

    在Python中marshal对象序列化的相关知识

    这篇文章主要介绍了在Python中marshal对象序列化的相关知识,是Python进阶学习中序列化相关的知识,需要的朋友可以参考下
    2015-07-07
  • Python中count统计指定字符、元素出现次数的实现

    Python中count统计指定字符、元素出现次数的实现

    本文主要介绍了Python中count统计指定字符、元素出现次数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • PIL对上传到Django的图片进行处理并保存的实例

    PIL对上传到Django的图片进行处理并保存的实例

    今天小编就为大家分享一篇PIL对上传到Django的图片进行处理并保存的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 浅析python中while循环和for循环

    浅析python中while循环和for循环

    在本篇文章里小编给各位整理的是关于python中while和for循环知识点详解,有兴趣的朋友们可以学习下。
    2019-11-11
  • Python列表推导式的基本操作详解

    Python列表推导式的基本操作详解

    Python 的列表推导式,这个看似简单的语法糖,实则内含无限威力,本文将从基础的概念认识,到各类进阶的用法和操作,更深入地探讨列表推导式,希望对大家有所帮助
    2023-06-06
  • 详解python学习笔记之解释器

    详解python学习笔记之解释器

    这篇文章主要为大家详细介绍了python学习笔记之解释器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论