解疑 Numpy 中的 transpose(转置)和swapaxes(两个轴转置变换)
1.一维和二维数据

.T等同于.transopse
2.三维及更多维数据
对于 z 轴 与 x 轴的变换
In [40]: arr = np.arange(16).reshape((2, 2, 4))
In [41]: arr
Out[41]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
In [42]: arr.transpose((1, 0, 2))
Out[42]:
array([[[ 0, 1, 2, 3],
[ 8, 9, 10, 11]],
[[ 4, 5, 6, 7],
[12, 13, 14, 15]]])
transpose 的变换是根据 shape 进行的
转换前 shape 是(0, 1, 2)
[[(0,0,0), (0,0,1), (0,0,2), (0,0,3)] // [[[ 0, 1, 2, 3],
[(0,1,0), (0,1,1), (0,1,2), (0,1,3)], // [ 4, 5, 6, 7]],
[(1,0,0), (1,0,1), (1,0,2), (1,0,3)] // [[ 8, 9, 10, 11],
[(1,1,0), (1,1,1), (1,1,2), (1,1,3)]]. //[12, 13, 14, 15]]]
转换后 shape 是(1, 0, 2), 也就是调换位于 z 轴 和 x 轴的shape
[[(0,0,0), (0,0,1), (0,0,2), (0,0,3)]
(1,0,0), (1,0,1), (1,0,2), (1,0,3)],
[(0,1,0), (0,1,1), (0,1,2), (0,1,3)]
[(1,1,0), (1,1,1), (1,1,2), (1,1,3)]]
将转换前 shape 对应的值填进去 得到
[0,1,2,3]
[8,9,10,11]
[4,5,6,7]
[12,13,14,15]
so perfect 刚好对应输出
3.swapaxes(两个轴转置变换)
解疑 Numpy 中的 transpose(转置)和swapaxes(两个轴转置变换)的更多相关文章
- numpy中transpose和swapaxes函数讲解
1 transpose() 这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数. 我们看如下一个numpy的数组: arr=np.arange(16).reshape( ...
- opencv、numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
opencv.numpy中矩阵转置,矩阵内的固定位置相应的坐标变换
- numpy中的ndarray方法和属性
原文地址 NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是 ...
- 使用python解线性矩阵方程(numpy中的matrix类)
这学期有一门运筹学,讲的两大块儿:线性优化和非线性优化问题.在非线性优化问题这里涉及到拉格朗日乘子法,经常要算一些非常变态的线性方程,于是我就想用python求解线性方程.查阅资料的过程中找到了一个极 ...
- Python numpy中矩阵的用法总结
关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...
- 【Python】无须numpy,利用map函数与zip(*)函数对数组转置(转)
http://blog.csdn.net/yongh701/article/details/50283689 在Python的numpy中,对类似array=[[1,2,3],[4,5,6],[7,8 ...
- numpy中的matrix与array的区别
Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array ...
- Python numpy函数:transpose()
transpose用于对高维数组进行转置,转置时候需要一个由轴编号组成的元组. 比如说三维的数组,那就对维度进行编号,也就是0,1,2:这样说可能比较抽象.这里的0,1,2可以理解为对shape返回元 ...
- Python numpy 中常用的数据运算
Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.——<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...
随机推荐
- [BZOJ4246]两个人的星座(计算几何)
4246: 两个人的星座 Time Limit: 40 Sec Memory Limit: 256 MBSubmit: 101 Solved: 55[Submit][Status][Discuss ...
- BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜(扫描线+贪心+优先队列)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1707 [题目大意] 每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值 防晒霜的作 ...
- 误改sudoers的访问权限后的修复
sudo: /etc/sudoers is mode 0777, should be 0440"问题的解决方法 ubuntu进入单用户模式,修改sudoers权限,修改root密码 1.重 ...
- 基于tiny4412的Linux内核移植(支持device tree)(二)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- [转]解决Eclipse更新ADT插件时遇到的Eclipse reports rendering library more recent than ADT plug-in问题
使用 SDK Manager 工具更新下载新版本后,无法显示可视化布局,同时提示 This version of the rendering library is more recent than y ...
- [Git] git revert ( revert commit 和 revert merge)
转载自:http://blog.csdn.net/qinjienj/article/details/7621887 我们难免会因为种种原因执行一些错误的commit / push,git提供了reve ...
- 逻辑回归Logistic Regression 之基础知识准备
0. 前言 这学期 Pattern Recognition 课程的 project 之一是手写数字识别,之二是做一个网站验证码的识别(鸭梨不小哇).面包要一口一口吃,先尝试把模式识别的经典问题—— ...
- ylbtech-LanguageSamples-PartialTypes(部分类型)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-PartialTypes(部分类型) 1.A,示例(Sample) 返回顶部 “分部类型 ...
- linux中断流程详解
异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核 ...