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 测试实现方法
Dec 24 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python 接收处理外带的参数方法
Dec 03 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
利用python绘制数据曲线图的实现
Apr 09 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Python中random模块常用方法的使用教程
Oct 04 Python
利用Python函数实现一个万历表完整示例
Jan 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
JS数组去重与取重的示例代码
2014/01/24 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
浅谈angular2路由预加载策略
2017/10/04 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
node 版本切换的实现
2020/02/02 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
python中日期和时间格式化输出的方法小结
2015/03/19 Python
通过cmd进入python的实例操作
2019/06/26 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python定时截屏实现
2020/11/02 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
写给女朋友的道歉信
2014/01/08 职场文书
创新比赛获奖感言
2014/02/13 职场文书
考核评语大全
2014/04/29 职场文书
给校长的建议书300字
2014/05/16 职场文书
社区国庆节活动总结
2015/03/23 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers