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中用altzone()方法处理时区的教程
May 22 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
python实现学生成绩测评系统
Jun 22 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
python实现简单聊天功能
Jul 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
Joomla开启SEF的方法
2016/05/04 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
基于python OpenCV实现动态人脸检测
2018/05/25 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
Servlet的生命周期
2013/08/25 面试题
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
队列队形口号
2015/12/25 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
Golang中异常处理机制详解
2021/06/08 Golang