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解析命令行读取参数--argparse模块使用方法
Jan 23 Python
python3 读写文件换行符的方法
Apr 09 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
简单了解python的一些位运算技巧
Jul 13 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
Python实现像awk一样分割字符串
Sep 15 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 Python
Flask处理Web表单的实现方法
Jan 31 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
python实现的web监控系统
Apr 27 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 Pear 安装及使用
2009/03/19 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
JS实现点星星消除小游戏
2020/03/24 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python中import学习备忘笔记
2017/01/24 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python清空命令行方式
2020/01/13 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
医学类个人求职信范文
2014/02/05 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python关于OS文件目录处理的实例分享
2021/05/23 Python