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中的类与对象之描述符详解
Mar 27 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
python 日期操作类代码
May 05 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
python如何爬取个性签名
Jun 19 Python
Django框架多表查询实例分析
Jul 04 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
Python 从attribute到property详解
Mar 05 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
PyCharm常用配置和常用插件(小结)
Feb 06 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缓冲输出实例分析
2015/01/05 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
Javascript中的数学函数
2007/04/04 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python调用百度语音REST API
2018/08/30 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python新手学习装饰器
2020/06/04 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
保险公司演讲稿
2014/09/02 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python