想了很久,决定还是追寻大神之路,开始写写博客,记录一下成长之路

    废话不多说,我们开始讲正题: what is np.transpose?

1、首先看看二维矩阵:

import numpy as nparr = np.arange(30).reshape(5, 6)
print(arr)
tran_arr = np.transpose(arr, axes=None)
print(tran_arr)

        输出结果为:

[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]

[24 25 26 27 28 29]]

[[ 0  6 12 18 24]
 [ 1  7 13 19 25]
 [ 2  8 14 20 26]
 [ 3  9 15 21 27]
 [ 4 10 16 22 28]
 [ 5 11 17 23 29]]    这个结果意料之中,很好理解,就是线性代数的转置矩阵 

2、再看看多维(三维为例)矩阵

            a.首先,要明确坐标问题

np.arange(12).reshape(2, 2, 3)

(2, 2, 3) 分别代表 d,  h,  w

我们不妨继续看看:

        

arr = np.arange(12).reshape(2, 2, 3)
print(arr[1, 0, 0])

输出结果为:

6       这下明白了吧,动手实践,多试几个

            b. 接下来还要明白一个索引问题

    

形状 索引
2 0
2 1
3 2

我们看看代码:

arr = np.arange(12).reshape(2, 2, 3)
print(arr)
tran_arr = np.transpose(arr, (1, 0, 2))  # (1, 0, 2)即为上面所说的索引号
print(tran_arr)

输出结果:

[[[ 0  1  2]
  [ 3  4  5]]

[[ 6  7  8]
  [ 9 10 11]]]

[[[ 0  1  2]
  [ 6  7  8]]

[[ 3  4  5]
  [ 9 10 11]]]

  这样就实现了转置矩阵,但是对于初学者这个例子恐怕远远不够理解,我们换个例子你就懂啦!

arr = np.arange(24).reshape(3, 4, 2)
print(arr)
tran_arr = np.transpose(arr, (1, 0, 2))
print(tran_arr)

输出结果:

        [[[ 0  1]
  [ 2  3]
  [ 4  5]
  [ 6  7]]

[[ 8  9]
  [10 11]
  [12 13]
  [14 15]]

[[16 17]
  [18 19]
  [20 21]
  [22 23]]]

[[[ 0  1]

  [ 8  9]
  [16 17]]

[[ 2  3]
  [10 11]
  [18 19]]

[[ 4  5]
  [12 13]
  [20 21]]

[[ 6  7]
  [14 15]
  [22 23]]]

            上面的shape 由(3,4,2)变成了(4,3,2),不就是因为索引号由(0,1,2)变成了(1,0,2)吗?

转置就是这么简单!

    

【Numpy学习记录】np.transpose讲解相关推荐

  1. 【Numpy 学习记录】np.stack 和 np.concatenate

    np.stack 和 np.concatenate两个函数都是用来连接数组的, 但是他们之间还是有一些探讨之处,直接上代码,一看便知: import numpy as npa = np.zeros(1 ...

  2. 【Numpy学习记录】np.cov详解

    写在篇前   在概率论和统计学中,协方差用于衡量两个变量的总体误差.而方差是协方差的一种特殊情况,即当两个变量是相同的情况.其定义的数学形式是:Cov(X,Y)=E[(X−E(X))(Y−E(Y))] ...

  3. Numpy学习之——np.zeros_like()函数

    在学习用RNN网络实现连个数的加法运算时,看到代码中有行:W_update=np.zeros_like(W); 函数主要是想实现构造一个矩阵W_update,其维度与矩阵W一致,并为其初始化为全0:这 ...

  4. 【Python学习记录】Numpy广播机制(broadcast)

    ✨ 博客主页:小小马车夫的主页 ✨ 所属专栏:Python学习记录 文章目录 一.什么是Numpy广播机制 二.Numpy广播应用 三.Numpy广播规则 一.什么是Numpy广播机制 在Numpy. ...

  5. numpy学习笔记:np.zeros应用——生成三通道全黑Mask(蒙版)

    numpy学习笔记:np.zeros应用--生成三通道全黑Mask(蒙板) np.zeros官方文档:np.zeros官方文档 下面是一段生成256*256三通道全黑mask的demo import ...

  6. 转置函数学习np.transpose

    np.transpose 作用于一维数据,shape只有一个参数 没有效果 tt=np.array([0,1,2,3,4]) ttT=np.transpose(tt) print("ttsh ...

  7. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  8. 机器学习实战中的函数学习记录

    title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...

  9. MTCNN人脸检测及人脸关键点提取(学习记录)

    我看了很多关于MTCNN框架的文章,但基本上都是一概而过,本文章记录MTCNN每一步的流程及附上注释的代码. MTCNN框架主要由三大子网络组成,即P-Net,R-Net,O-Net. 三大子网络的区 ...

最新文章

  1. 【进程通信】Signal信号
  2. SpringBoot 上传多个文件
  3. 两个pv挂一个vg_两个pv挂一个vg_VG解散LOL分部,LPL官网提前改名,下赛季被“RA”收购...
  4. python3语法糖_python的语法糖
  5. 使用C#操作Oracle Spatial的SDO_GEOMETRY对像(读取和写入)
  6. Vue3脚手架安装vue @/cli
  7. IO流-ReadLine方法的原理 自定义BufferedReader
  8. ubuntu16.04下安装windows软件,以及卸载.
  9. NFS服务安装与配置方案
  10. Java 11 升级:“债务”“危机”
  11. SonicWall 督促客户立即修复NSM 本地版本漏洞
  12. ostringstream使用
  13. 【事件驱动】【数码管识别】(C++多线程实现多幅图像的同步识别)
  14. NK细胞培养方法与优化解决方案
  15. IT十年人生过客-十八-路过机遇
  16. Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十一)阶段性小结
  17. 软件工程专业的论文答辩_2015软件工程硕士论文答辩流程
  18. 刚毕业的小白想学软件测试,有没有好的机构推荐呢?
  19. imac pro m1芯片关闭sip方法
  20. android 智能家居 物联网 声纹开锁

热门文章

  1. 【千字分析】剑指 Offer 05. 替换空格
  2. 【详细分析】1023 Have Fun with Numbers (20 分)_20行代码AC
  3. 算法竞赛入门经典(第二版) | 例题5-2 木块问题 (紫皮书牛啤!)(UVa101,The Blocks Problem)
  4. [leetcode] 108.有序数组转换为二叉搜索树
  5. python链表和树实验报告_关于Python实现树结构和链表结构的一点想法
  6. notepad json格式化插件_Prettier + ESLint VSCode 插件配置指南
  7. Python爬取某旅游网站中的中国城市信息
  8. 三维空间长度温度数量_风电叶片模具水循环温度控制机及其智能化控制解析
  9. 这次来个BGP反射器的简单小实验
  10. 只有本地用户才能安装sql_为何只有安装了新风换气机才能打造好的家居环境?听听厂家怎么说...