形象化展示numpy.stack

news/2024/9/19 20:38:11 标签: numpy

https://numpy.org/doc/stable/reference/generated/numpy.stack.html#numpy.stack

1. 一维数组

import numpy as np

a = np.arange(4)
b = np.arange(4)
c = np.stack([a,b])
d = np.stack([a,b], axis=1)
print('a -->', a.shape,':\n', a)
print('b -->', b.shape,':\n', b)
print('c -->', c.shape,':\n', c)
print('d -->', d.shape,':\n', d)

输出:

a --> (4,) :
 [0 1 2 3]
b --> (4,) :
 [0 1 2 3]
c --> (2, 4) :
 [[0 1 2 3]
 [0 1 2 3]]
d --> (4, 2) :
 [[0 0]
 [1 1]
 [2 2]
 [3 3]]

2. 二维数组

import numpy as np

a = np.arange(8).reshape(2,4)
b = np.arange(8,16).reshape(2,4)
c = np.arange(16,24).reshape(2,4)

d = np.stack([a,b,c], axis=0)
e = np.stack([a,b,c], axis=1)
f = np.stack([a,b,c], axis=2)

dd = [[[0,1,2,3],[4,5,6,7]],[[8,9,10,11],[12,13,14,15]],[[16,17,18,19],[20,21,22,23]]]
ee = [[[0,1,2,3],[8,9,10,11],[16,17,18,19]],[[4,5,6,7],[12,13,14,15],[20,21,22,23]]]
ff = [[[0,8,16],[1,9,17],[2,10,18],[3,11,19]],[[4,12,20],[5,13,21],[6,14,22],[7,15,23]]]
print(dd == d)
print(ee == e)
print(ff == f)

print('a -->', a.shape,':\n', a)
print('b -->', b.shape,':\n', b)
print('c -->', c.shape,':\n', c)

print('d -->', d.shape,':\n', d)
print('e -->', e.shape,':\n', e)
print('f -->', f.shape,':\n', f)

输出:

[[[ True  True  True  True]
  [ True  True  True  True]]

 [[ True  True  True  True]
  [ True  True  True  True]]

 [[ True  True  True  True]
  [ True  True  True  True]]]
[[[ True  True  True  True]
  [ True  True  True  True]
  [ True  True  True  True]]

 [[ True  True  True  True]
  [ True  True  True  True]
  [ True  True  True  True]]]
[[[ True  True  True]
  [ True  True  True]
  [ True  True  True]
  [ True  True  True]]

 [[ True  True  True]
  [ True  True  True]
  [ True  True  True]
  [ True  True  True]]]
a --> (2, 4) :
 [[0 1 2 3]
 [4 5 6 7]]
b --> (2, 4) :
 [[ 8  9 10 11]
 [12 13 14 15]]
c --> (2, 4) :
 [[16 17 18 19]
 [20 21 22 23]]
d --> (3, 2, 4) :
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

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

 [[16 17 18 19]
  [20 21 22 23]]]
e --> (2, 3, 4) :
 [[[ 0  1  2  3]
  [ 8  9 10 11]
  [16 17 18 19]]

 [[ 4  5  6  7]
  [12 13 14 15]
  [20 21 22 23]]]
f --> (2, 4, 3) :
 [[[ 0  8 16]
  [ 1  9 17]
  [ 2 10 18]
  [ 3 11 19]]

 [[ 4 12 20]
  [ 5 13 21]
  [ 6 14 22]
  [ 7 15 23]]]

2.1 如何理解堆叠的规则呢?

Join a sequence of arrays along a new axis.,所以堆叠后的数组比原数组多一个轴(维度)。
对于axis=0特别好理解,就是把原数组每个都看成一个整体再组成一个新的数组,新数组的第一个元素就是参与堆叠的第一个数组,新数组的第二个元素就是参与堆叠的第二个数组,以此类推,新数组最后一个元素就是参与堆叠的最后一个数组。对于32*4的数组而言,堆叠后数组的形状是3*2*4

对于axis=1可以把参与堆叠的每个数组拉平按行排列好,如下图所示。堆叠后的新数组比原数组也会多一个维度,新数组形状第一个维度的值是原数组的第一个维度的值,第二个维度的值是参与堆叠的数组的个数,第三个维度的值是原数组第二个维度的值。对于32*4的数组而言,堆叠后数组的形状是2*3*4;新数组的取值第一个元素是下图中蓝色区域,每行是一个数组;第二个元素是下图中绿色区域,每行是一个数组。

对于axis=2操作上类似axis=1,新产生的数组在形状上第一个维度相同,第二个维度与第三个维度与axis=1的情况相互交换。对于32*4的数组而言,堆叠后数组的形状是2*4*3。新数组的取值第一个元素是下图中蓝色区域做转置产生的4个数组;第二个元素是下图中绿色区域做转置产生的4个数组。
在这里插入图片描述


http://www.niftyadmin.cn/n/5666122.html

相关文章

SpringCloud微服务多模块打包、单服务打包

目录 前言 一、maven命令 二、项目结构 三、Terminal命令窗口 四、执行命令 五、maven插件自定义命令 前言 在微服务项目中,往往有多模块的项目依赖,比如公共包,往往被所有子服务所依赖。打包的时候都是整体微服务打包,但…

AD域控服务器

1.AD域控服务器安装 2.客户端Windows10加入域环境 3.组织单位OU和域用户创建 目的是分部门管理用户和使用域用户登录客户端 4.域用户安全策略 5.当客户端密码锁住了,管理员解锁账户。 6.只允许域用户使用自己的电脑

什么是数据治理?如何保障数据质量安全

数据治理的定义 数据治理(Data Governance)是组织中涉及数据使用的一整套管理行为,由企业数据治理部门发起并推行,关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。根据国际数据管理协会(DAMA)和…

基于C语言+SQL Server2008实现(控制台)图书管理系统

第1章 概述 1.1项目背景 随着科技的发展,尤其是计算机技术的迅猛发展,图书馆管理的问题从以往的人工管理,到现在的电脑化,系统化,是对图书馆管理方法的质的飞跃,这些技术不仅让图书馆管理变得更加方便、快…

sql中拼接操作

SQL中的拼接操作 常用listagg聚合函数用法 也可用 XMLAGG代替上述操作 常用listagg聚合函数 LISTAGG(column, [separator]) WITHIN GROUP (ORDER BY order_by_clause)column:你想要连接起来的列。 [separator]:可选参数,用于指定列值之间的分…

HTML——基本标签

1. 结构标签 <html>&#xff1a;这是HTML文档的根元素&#xff0c;所有其他HTML元素都应该位于<html>元素内部。<head>&#xff1a;包含了文档的元数据&#xff0c;如文档的标题、字符集定义、样式链接、脚本链接等。这些信息不会直接显示在网页上&#xff…

Android 开发入门教程-入门基础

1.Android 开发环境 JDK搭建 https://www.cnblogs.com/tianma3798/p/3959626.html 2.Android Sdk 开发环境搭建 AndroidSdk下载地址和环境变量配置 解决Android SDK Manager下载太慢问题(转) 3.Android Avd 虚拟机 4. Android Adb 调试工具 https://www.cnblogs.com/tian…

华为AR100-S路由器恢复出厂设置

华为AR100-S路由器浏览器访问web界面&#xff0c;出错的解决办法&#xff0c;之前讨论过&#xff0c;详情点这里&#xff1a; https://blog.csdn.net/weixin_62598385/article/details/142215136 这个路由器&#xff0c; 之前是装修公司安装的&#xff0c; 多年前的事了&#…