Python numpy数组转置与轴变换


Posted in Python onNovember 15, 2019

这篇文章主要介绍了Python numpy数组转置与轴变换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

矩阵的转置

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,5))
>>> arr
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
>>> arr.T
array([[ 0, 5, 10],
    [ 1, 6, 11],
    [ 2, 7, 12],
    [ 3, 8, 13],
    [ 4, 9, 14]])

矩阵的内积

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,5))
>>> arr
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
>>> arr.T
array([[ 0, 5, 10],
    [ 1, 6, 11],
    [ 2, 7, 12],
    [ 3, 8, 13],
    [ 4, 9, 14]])
>>> np.dot(arr.T,arr)
array([[125, 140, 155, 170, 185],
    [140, 158, 176, 194, 212],
    [155, 176, 197, 218, 239],
    [170, 194, 218, 242, 266],
    [185, 212, 239, 266, 293]])

轴变换

二维轴变换

Python numpy数组转置与轴变换

1.两轴交换

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,5))
>>> arr
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
>>> arr.transpose(1,0)#1轴和0轴进行交换
array([[ 0, 5, 10],
    [ 1, 6, 11],
    [ 2, 7, 12],
    [ 3, 8, 13],
    [ 4, 9, 14]])

三维轴变换

>>> 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((1,0,2))
array([[[ 0, 1, 2, 3],
    [ 8, 9, 10, 11]],

    [[ 4, 5, 6, 7],
    [12, 13, 14, 15]]])

1.这种变化有点麻烦,不好理解。但是如果简单化就好了,加入用P(x,y,z)来表示矩阵中的每一个点,那么在numpy中,这个x,y,z就分别对应0,1,2

2.举个例子比如原来数组中0这个元素,它原来的坐标是(0,0,0),那么transpose(1,0,2)对于这个点来说就是把x,y坐标互换,而z坐标不变,则其在新的矩阵中坐标依旧是(0,0,0)不变

3.举个另外点的例子比如4这个点,其坐标是(0,1,1),那么它的x和y坐标交换之后是(1,0,1),所以它在新的矩阵中位置是(1,0,1)

4.事实上transpose函数正是对原来矩阵中每个点做这个变换,最后得到新的矩阵

两轴交换

交换1轴和2轴

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

    [[ 8, 9, 10, 11],
    [12, 13, 14, 15]]])
>>> arr.swapaxes(1,2)
array([[[ 0, 4],
    [ 1, 5],
    [ 2, 6],
    [ 3, 7]],

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python ZipFile模块详解
Nov 01 Python
Python自动扫雷实现方法
Jul 25 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
Python基础练习之用户登录实现代码分享
Nov 08 Python
Django视图和URL配置详解
Jan 31 Python
PyTorch上实现卷积神经网络CNN的方法
Apr 28 Python
Python中一些深不见底的“坑”
Jun 12 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
python requests模拟登陆github的实现方法
Dec 26 Python
python-xpath获取html文档的部分内容
Mar 06 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
python修改文件内容的3种方法详解
Nov 15 #Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 #Python
python根据文本生成词云图代码实例
Nov 15 #Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 #Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 #Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 #Python
django实现类似触发器的功能
Nov 15 #Python
You might like
php输出xml必须header的解决方法
2014/10/17 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
Python assert关键字原理及实例解析
2019/12/13 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
俄语专业职业生涯规划
2014/02/26 职场文书
霸王洗发水广告词
2014/03/14 职场文书
弄虚作假心得体会
2014/09/10 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python