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使用htpasswd实现基本认证授权的例子
Jun 10 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
对python 自定义协议的方法详解
Feb 13 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
python实现机器人卡牌
Oct 06 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Python日志logging模块功能与用法详解
Apr 09 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
Python3 webservice接口测试代码详解
Jun 23 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 不使用js实现页面跳转
2014/02/11 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP实现简易blog的制作
2016/10/24 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
学习python处理python编码问题
2011/03/13 Python
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
python中管道用法入门实例
2015/06/04 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
传播学专业毕业生自荐信
2013/11/04 职场文书
车工岗位职责
2013/11/26 职场文书
给实习单位的感谢信
2014/02/01 职场文书
网络研修随笔感言
2014/02/17 职场文书
vue中div禁止点击事件的实现
2022/04/02 Vue.js
Python中npy和mat文件的保存与读取
2022/04/24 Python