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实现simhash算法实例
Apr 25 Python
python之wxPython菜单使用详解
Sep 28 Python
python查找指定具有相同内容文件的方法
Jun 28 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
python+selenium实现自动抢票功能实例代码
Nov 23 Python
利用python实现周期财务统计可视化
Aug 25 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Python函数基本使用原理详解
Mar 19 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
2018/04/28 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python友情链接检查方法
2015/07/08 Python
python自动翻译实现方法
2016/05/28 Python
python 调用HBase的简单实例
2016/12/18 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python超时重新请求解决方案
2019/10/21 Python
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
毕业设计计划书
2014/01/09 职场文书
酒店端午节促销方案
2014/02/18 职场文书
大学军训感言800字
2014/02/27 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
升旗仪式主持词
2014/03/19 职场文书
实习评语大全
2014/04/26 职场文书
师德师风的心得体会
2014/09/02 职场文书
授权委托书
2014/09/17 职场文书
车间质检员岗位职责
2015/04/08 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android