形象化展示numpy.stack

news2024/9/18 22:14:17

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.coloradmin.cn/o/2142543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICM20948 DMP代码详解(25)

接前一篇文章:ICM20948 DMP代码详解(24) 上一回讲到了inv_icm20948_load_firmware函数,对于大体功能进行了介绍,本回深入其具体实现代码细节。为了便于理解和回顾,再次贴出相关代码: //Setup Iv…

【个人博客hexo版】hexo安装时会出现的一些问题

项目场景: 项目场景:在完成了GitHub仓库和git的连接之后,就要新建一个文件夹(例如hexo blog)进行下一步hexo的使用 问题描述 例如:如图所示 原因分析: 这些error不用看它到底是什么&#xf…

Chrome谷歌浏览器登录账号next无反应

文章目录 问题描述 我们的Chrome浏览器在更新之后,会出现登录谷歌账号的时候,当你输入你的谷歌邮箱之后,点击 n e x t next next,也就是下一步的时候,页面没有反应,也就是没有跳转到输入密码的页面。 分析 根据logs里…

CLIP模型也能处理点云信息(论文复现)

CLIP模型也能处理点云信息(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 CLIP模型也能处理点云信息(论文复现)概述模型结构模型总览图点云的投影视图间适配器 演示效果零样本投影少样本投影 核心逻辑使用方式部署…

Mamba环境配置教程【自用】

1. 新建一个Conda虚拟环境 conda create -n mamba python3.102. 进入该环境 conda activate mamba3. 安装torch(建议2.3.1版本)以及相应的 torchvison、torchaudio 直接进入pytorch离线包下载网址,在里面寻找对应的pytorch以及torchvison、…

VTD激光雷达(5)——05_OptiX_GPU

文章目录 前言一、总结 前言 一、 1 2 3 总结

随着访问范围的扩大 OpenAI o1-mini 现已向免费用户开放

上周,OpenAI 展示了其最新的大型语言模型(LLM)–OpenAI o1及其小兄弟 OpenAI o1-mini。该公司在公告中称,Plus 和 Team 用户可在公告发布之日起访问该模型。企业和教育用户将在本周获得该模型,而免费用户最终将获得 o1…

线性代数之QR分解和SVD分解

文章目录 1.QR分解Schmidt正交化Householder变换QR分解的应用 2. 求矩阵特征值、特征向量的基本方法3.SVD分解SVD分解的应用 参考文献 1.QR分解 矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵R的乘积的形式。 任意实数方阵A&#xff0c…

2022高教社杯全国大学生数学建模竞赛C题 问题一(1) Python代码

目录 问题 11.1 对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析数据探索 -- 单个分类变量的绘图树形图条形图扇形图雷达图Cramer’s V 相关分析统计检验列联表分析卡方检验Fisher检验绘图堆积条形图分组条形图分类模型Logistic回归随机森林import matplotlib…

SpaceX实现人类首次商业太空行走:航天历史新篇章

导语 2023年9月,SpaceX成功完成了人类历史上首次商业太空行走,这不仅是航天领域的重要突破,也是商业航天的一次重大胜利。这一事件标志着普通人离太空更近了一步,为未来的太空探索和火星移民奠定了基础。 一、背景介绍&#xff1a…

【MySQL】数据类型【mysql当中各自经典的数据类型的学习和使用】

目录 数据类型1数据类型分类2.数值类型2.1tinyint类型2.2bit类型2.3小数类型2.3.1float2.3.2decimal 3.字符串类型3.1char3.2varchar3.3char和varchar的对比 4.日期和时间类型5.enum和set5.1对enum和set进行插入5.2对enum和set进行查询 数据类型 数据类型本身就是mysql当中天然…

YOLOv8 的安装与训练

YOLOv8 是 YOLO 系列实时目标检测器中的较新迭代版本,在准确性和速度方面提供了前沿性能。基于之前 YOLO 版本的进步,YOLOv8 引入了新的特性和优化,使其成为各种应用中各种目标检测任务的理想选择。 一、安装显卡驱动与CUDA: 这个…

成都院干翻华东院成第一水电设计院!

注:文章来源于百度。版权归原作者所有。。 昨天中国电建发布了2024年中报,一般中报我是不怎么研究的,除非利益相关。 但今年电建的中报亮点很多,其中最显眼的就要数电建成都院在上半年干翻了传统龙头老大——华东院。 在净利润…

【C++】一次rustdesk-server编译记录

RustDesk Server 是一个开源的远程桌面解决方案,允许用户自托管自己的远程桌面服务器。该项目是免费且开源的,支持多种平台和环境。RustDesk Server 提供了 ID/Rendezvous 服务器和 Relay 服务器,以及一些 CLI 工具,方便用户进行远…

[Redis] Redis中的set和zset类型

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

动手学深度学习8.5. 循环神经网络的从零开始实现-笔记练习(PyTorch)

本节课程地址:从零开始实现_哔哩哔哩_bilibili 本节教材地址:8.5. 循环神经网络的从零开始实现 — 动手学深度学习 2.0.0 documentation (d2l.ai) 本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptrons>rnn-scratc…

【优化器】Optimizer——深度学习中的优化器是什么作用呢?

【优化器】Optimizer——深度学习中的优化器是什么作用呢? 【优化器】Optimizer——深度学习中的优化器是什么作用呢? 文章目录 【优化器】Optimizer——深度学习中的优化器是什么作用呢?1.什么是优化器?梯度下降法3. 常见的优化…

数据结构易错整理1

目录 数据结构的基础概念 数据结构基础概念 数据结构的逻辑结构 数据结构的物理结构 算法分析 时间复杂度 例题 数据结构的基础概念 数据结构基础概念 设计存储结构时不仅要存储格数据元素的值,而且还要存储数据元素之间的关系 数据结构具有特定关系的数据…

C/C++语言基础--从C到C++的不同(下),15个部分说明C与C++的不同

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 1-10在上篇C/C语言基础–从C到C的不同(上);当然C和C的不同还有很多,本人暂时只总结这些,其他的慢慢更新;上一篇C/C语言基础–从C到C的不同(上&…

Sass实现文字两侧横线及Sass常用方案

Sass常用方案及Sass实现文字两侧横线 1.Sass实现文字两侧横线2.用Sass简化媒体查询3.使用继承占位符实现样式复用4.Sass 模块化5.lighten 和 darken 自我记录 1.Sass实现文字两侧横线 mixin 的基本作用: 代码复用:把常用的样式封装在一起,…