numpy中stack函数的大白话解释

很多人在处理数组的时候都会用到stack()这个函数,今天就让这个萌新给大家详细解释加实验一下stack函数
我们设置两个数组

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[9, 10, 11], [11,12,13], [14, 15,16]])

这是a数组的样子:

这是b数组的样子:

**

现在我们将用这两个数组来对axis=0这三个参数的stack()进行解释:

**

c=np.stack((a, b),axis=0)

我们将c数组输出出来:

Out[86]:
array([[[ 1,  2,  3],[ 4,  5,  6],[ 7,  8,  9]],[[ 9, 10, 11],[11, 12, 13],[14, 15, 16]]])

有点抽象是不是,c其实是一个立体结构,纵向有两层,第0层是:

第1层是:

所以c就像一个长方体一样,我们从中取数是不是得告诉电脑它的三个坐标呀,因为c可以看做成一个立体的3维的长方体,例如我们取:

c[1][2][1]
Out[87]: 15

这里第一个[1]指的是第一层奥,总共有两层,0层与1层,然后[2][1]指的是

我们可以理解为axis=0是把两个数组像烙馅饼一样一个一个放在一起叠罗汉,注意奥:两个数组必须要格式相等,也就是在这都是3*3的,如果大小不一致,则会报错:

ValueError: all input arrays must have the same shape

**

现在我们将用这两个数组来对axis=1这三个参数的stack()进行解释:

**
一样的道理,我们输入:

c=np.stack((a, b),axis=1)
print(c)
array([[[ 1,  2,  3],[ 9, 10, 11]],[[ 4,  5,  6],[11, 12, 13]],[[ 7,  8,  9],[14, 15, 16]]])

是不是有点抽象,不要着急,这是一个三层的长方体,每一层都是有a与b的相同行取出来组合到一起的,比如:
第0层:[[1,2,3],[4,5,6]]中的[1,2,3]是a的第一层:

[4,5,6]则是b的第一层,两个数组a,b的第一行,组成了c的第0层;两个数组a,b的第二行组成了c的第一层,两个数组a,b的第二行,组成了c的第二层,这样,一个总共层数为3的c就出现了。

现在我们将用这两个数组来对axis=2这三个参数的stack()进行解释:

c=np.stack((a, b),axis=2)
print(c)
array([[[ 1,  9],[ 2, 10],[ 3, 11]],[[ 4, 11],[ 5, 12],[ 6, 13]],[[ 7, 14],[ 8, 15],[ 9, 16]]])

这里,我们同样出现了一个层数为3的c,只不过,这次我们用a和b的第一层:
a:

b:

这两个的第一行进行转置然后放到一起,成为c的第0层:

以此类推啦,所以出来的c有多少层,看的是a b的行数,这里a b 都是行,所以c是3层,如果a,b都是5行:

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],[0,0,0],[0,0,0]])
b = np.array([[9, 10, 11], [11,12,13], [14, 15,16],[0,0,0],[0,0,0]])
c=np.stack((a, b),axis=2)
c=array([[[ 1,  9],[ 2, 10],[ 3, 11]],[[ 4, 11],[ 5, 12],[ 6, 13]],[[ 7, 14],[ 8, 15],[ 9, 16]],[[ 0,  0],[ 0,  0],[ 0,  0]],[[ 0,  0],[ 0,  0],[ 0,  0]]])

c就是5行啦!

numpy的stack大白话解释相关推荐

  1. 大白话解释:到底什么是人工智能(AI),小学生都能看懂

    现在人工智能(AI)一词满天飞,上到国家和地方ZF的科技创新扶持政策,下到大小公司的各种智能XXX.智慧XXX产品或解决方案,似乎不加上人工智能,就显得没有技术含量.不够高端.反正人工智能一词有点泛滥 ...

  2. 大白话解释TCP三次握手

    大白话解释TCP三次握手 原文地址:http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html 一.TCP三次握手 在TCP/IP协议中 ...

  3. 【git基础】大白话解释git和github

    <h1>大白话解释 Git 和 GitHub</h1> 本文旨在使用通俗易懂的文字,讲解版本控制背后的理论,以便你能对程序员们如何工作有个全局概念.本文不涉及代码,不用下载啥东 ...

  4. python numpy中stack(),hstack(),vstack()函数解释

    引用 stack()函数axes参数的含义总结起来就是: axes=0:不变 axes=1:次外层矩阵转置 axes=2:次外层矩阵转置,同时次次外层矩阵转置 以此类推. hstack()是次外层水平 ...

  5. Numpy中stack(),hstack(),vstack()函数详解

    这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack()函数了,我查阅了numpy的官方文档,在网上又看了几个大牛的博客,发现他们也只是把numpy文档的内容照搬,看完后还是不能理解, ...

  6. numpy中stack的用法直观理解

    首先生成一些数, import numpy as np a = np.arange(1, 7).reshape((2, 3)) b = np.arange(7, 13).reshape((2, 3)) ...

  7. Numpy中stack(),hstack(),vstack()函数的使用方法

    stack()与hstack(),vstack()不同,前者堆叠数组是联结(join),而后两者是串联(concatenation),可以体会一下. 1. stack()函数 按照指定的轴对数组序列进 ...

  8. numpy库的一些解释

    Numpy库介绍 NumPy是一个的Python库,主要用于对多维数组执行计算. NumPy这个词来源于两个单词-- Numerical [njuːˈmerɪkl] (数值;数值法;数值的;数字的)和 ...

  9. 振动测试大白话(一)--大白话解释啥是冲击响应谱

    摘要:有的振动测试行业同行除了要测试结果,也愿意交流一下计算的过程,涉及到的计算知识比较多,有的也难以理解.为了让大家尽可能简单地理解这些概念,今天开始就逐步分享一些大白话振动测试知识.本篇讲冲击响应 ...

  10. python transpose函数_Python Numpy.transpose函数可视化解释

    二维情况 例如以下代码: x = np.arange(4).reshape((2,2)) 输出: x = ([[0, 1], [2, 3]]) 对于二维的数组,np.transpose()即为将矩阵进 ...

最新文章

  1. MySQL中MyISAM 和 InnoDB 的基本区别
  2. MongoDB3.4安装及卸载
  3. 安装双系统(win10+Ubuntu18.0)使用一段时间后,就直接进入win10,bios启动项里也没有Ubuntu
  4. Nginx下载服务器配置文件
  5. boost::contract模块实现是否constexpr的测试程序
  6. CL_CRM_REPORT_QUESTION call CRM_REPORT_RF_CHECK_AUTHORITY
  7. softmax logistic loss详解
  8. DirectX支配游戏!历代GPU架构全解析
  9. 云计算学习笔记002---云计算的理解及介绍,google云计算平台实现原理
  10. Android中的Intent详细讲解【转】
  11. 学习SQLAlchemy Core
  12. 20个Android游戏源码,…
  13. MD5加密算法(C++版)
  14. Excel表VLOOKUP多个条件匹配数据
  15. MFSPV: A Multi-Factor Secured and Lightweight Privacy-Preserving Authentication Schem
  16. 如何使用SPSS进行两因素重复测量的方差分析
  17. setUp和tearDown
  18. mysql 连续七天不登录_【SQL】查询连续登陆7天以上的用户
  19. windows phone 7开发日志(正题二,字体)
  20. 获取本小程序的appID

热门文章

  1. OSPF协议总结5(六种LSA)
  2. (组合数+快速幂+lucas+费马小引理)acwing 887. 求组合数 III
  3. matlab正序零序负序,史上最完美的图形和公式带你搞懂正序负序零序!
  4. 哒螨灵使用注意事项_常用杀虫剂-哒螨灵使用方法
  5. 软件工程(2019)结对编程第一次作业
  6. 使用MapWinGis ActiveX控件在图层上画点
  7. 2种方法,当文本框输入@自动补全邮箱后缀(特别是命名空间的引用,共三种方法)
  8. DSPE-PEG-MAL,474922-22-0,DSPE-PEG-Maleimide
  9. 如何成为很厉害的程序员?- 读《精进》
  10. 2020牛客暑期多校训练营(第九场)——Groundhog and 2-Power Representation