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中degrees()方法的使用
May 18 Python
python安装Scrapy图文教程
Aug 14 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
python 字典套字典或列表的示例
Dec 16 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
10个顶级Python实用库推荐
Mar 04 Python
python开发实时可视化仪表盘的示例
May 07 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
职业技术学校毕业生推荐信
2013/12/03 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
五好家庭事迹材料
2014/12/20 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
html5调用摄像头实例代码
2021/06/28 HTML / CSS