Numpy数组拼接总结

【Python】进阶学习:基于Numpy实现按指定维度拼接两个数组 通过本文的介绍,我们学习了如何使用Numpy按指定维度拼接两个数组。通过np.vstacknp.hstack等函数,我们可以轻松实现数组的拼接操作。在实际应用中,我们可以根据具体需求选择合适的拼接方式和函数,以达到预期的效果。此外,我们还需要注意在拼接数组时的一些细节问题,比如参与拼接的数组在拼接维度上的大小必须相同,否则无法拼接。最后,我们可以将数组拼接的概念和方法应用到更广泛的场景中。比如,在处理图像数据时,我们可以将多张图像拼接成一张大图; 阅读详情

 方法一:

Numpy中使用级联函数concatenate()来连接两个数组,可选参数为连接轴(连接维度) axis,axis默认为0,即默认在第0维上进行元素的连接。

  • 级联函数使两数组指定维axis上的对应位置的元素相连接,若指定axis大小而时同维度上元素个数对应不相同时将会报错!
  • 指定不同axis所得到的新数组形状不同

注:Numpy中维度从第0维开始

 方法二:

使用堆栈函数stack()来连接数组,可选参数仍为连接轴axis,axis默认大小为0。

  • 使用堆栈函数stack()连接数组与级联函数concatenate() 的区别在于stack()函数使两数组的元素按连接轴交替连接。
  • 指定不同的axis得到的数组形状相同

例子:

# -*- coding: utf-8 -*-
import numpy as np

arr1 = np.array([[[1, 2], [3, 4]],[[5, 6], [7, 8]]])

arr2 = np.array([[[9, 10], [11, 12]],[[13, 14], [15, 16]]])

"""级联拼接"""
arr = np.concatenate((arr1, arr2))               #默认在第0维上进行数组的连接

arr_1 = np.concatenate((arr1, arr2), axis=1)   #axis指定拼接的维度,axis=1表示在第1维上对数组进行拼接

arr_2 = np.concatenate((arr1, arr2), axis=2)   #axis指定拼接的维度,axis=2表示在第2维上对数组进行拼接

"""堆栈拼接"""
arr_3 = np.stack((arr1, arr2))                    #默认在第0维上进行数组的连接
arr_4 = np.stack((arr1, arr2),axis=1)             #在第1维上进行数组的连接
arr_5 = np.stack((arr1, arr2),axis=2)             #在第2维上进行数组的连接
arr_6 = np.stack((arr1, arr2),axis=3)             #在第3维上进行数组的连接

"""其他方法"""
arr_7 = np.hstack((arr1, arr2))                   #按行堆叠,相当于级联axis=1的方法

arr_8 = np.vstack((arr1, arr2))                   #按列堆叠,相当于级联axis=0的方法

arr_9 = np.dstack((arr1, arr2))                   #按深度堆叠,相当于级联axis=2的方法

print("原始数组:")
print(arr1)
print("数组类型:",arr1.shape)
print()
print(arr2)
print("数组类型:",arr2.shape)
print("--------------------------------")
print()

print("使用concatenate函数连接")
print()
print("默认在第0维上进行数组的连接")
print(arr)
print("数组类型:",arr.shape)
print("--------------------------------")
print()


print("--------------------------------")
print()
print("在第1维上进行数组的连接")
print(arr_1)
print("数组类型:",arr_1.shape)
print("--------------------------------")
print()


print("在第2维上进行数组的连接")
print(arr_2)
print("数组类型:",arr_2.shape)
print("--------------------------------")
print()

print("使用stack函数连接")
print()

print("默认在第0维上进行数组的连接")
print(arr_3)
print("数组类型:",arr_3.shape)
print("--------------------------------")
print()



print("在第1维上进行数组的连接")
print(arr_4)
print("数组类型:",arr_4.shape)
print("--------------------------------")
print()


print("在第2维上进行数组的连接")
print(arr_5)
print("数组类型:",arr_5.shape)
print("--------------------------------")
print()


print("在第3维上进行数组的连接")
print(arr_6)
print("数组类型:",arr_6.shape)
print("--------------------------------")
print()


print("按行堆叠")
print(arr_7)
print("数组类型:",arr_7.shape)
print("--------------------------------")
print()

print("按列堆叠")
print(arr_8)
print("数组类型:",arr_8.shape)
print("--------------------------------")
print()

print("按高(深)堆叠")
print(arr_9)
print("数组类型:",arr_9.shape)
print("--------------------------------")
print()

运行结果:


原始数组:
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
数组类型: (2, 2, 2)

[[[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]
数组类型: (2, 2, 2)
--------------------------------

使用concatenate函数连接

默认在第0维上进行数组的连接
[[[ 1  2]
  [ 3  4]]

 [[ 5  6]
  [ 7  8]]

 [[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]
数组类型: (4, 2, 2)
--------------------------------

--------------------------------

在第1维上进行数组的连接
[[[ 1  2]
  [ 3  4]
  [ 9 10]
  [11 12]]

 [[ 5  6]
  [ 7  8]
  [13 14]
  [15 16]]]
数组类型: (2, 4, 2)
--------------------------------

在第2维上进行数组的连接
[[[ 1  2  9 10]
  [ 3  4 11 12]]

 [[ 5  6 13 14]
  [ 7  8 15 16]]]
数组类型: (2, 2, 4)
--------------------------------

使用stack函数连接

默认在第0维上进行数组的连接
[[[[ 1  2]
   [ 3  4]]

  [[ 5  6]
   [ 7  8]]]


 [[[ 9 10]
   [11 12]]

  [[13 14]
   [15 16]]]]
数组类型: (2, 2, 2, 2)
--------------------------------

在第1维上进行数组的连接
[[[[ 1  2]
   [ 3  4]]

  [[ 9 10]
   [11 12]]]


 [[[ 5  6]
   [ 7  8]]

  [[13 14]
   [15 16]]]]
数组类型: (2, 2, 2, 2)
--------------------------------

在第2维上进行数组的连接
[[[[ 1  2]
   [ 9 10]]

  [[ 3  4]
   [11 12]]]


 [[[ 5  6]
   [13 14]]

  [[ 7  8]
   [15 16]]]]
数组类型: (2, 2, 2, 2)
--------------------------------

在第3维上进行数组的连接
[[[[ 1  9]
   [ 2 10]]

  [[ 3 11]
   [ 4 12]]]


 [[[ 5 13]
   [ 6 14]]

  [[ 7 15]
   [ 8 16]]]]
数组类型: (2, 2, 2, 2)
--------------------------------

按行堆叠
[[[ 1  2]
  [ 3  4]
  [ 9 10]
  [11 12]]

 [[ 5  6]
  [ 7  8]
  [13 14]
  [15 16]]]
数组类型: (2, 4, 2)
--------------------------------

按列堆叠
[[[ 1  2]
  [ 3  4]]

 [[ 5  6]
  [ 7  8]]

 [[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]
数组类型: (4, 2, 2)
--------------------------------

按高(深)堆叠
[[[ 1  2  9 10]
  [ 3  4 11 12]]

 [[ 5  6 13 14]
  [ 7  8 15 16]]]
数组类型: (2, 2, 4)
--------------------------------


Process finished with exit code 0

 

 
Figma入门-自动布局 Figma原型图制作内置组件友好,自动布局类似CSS flex,通过布局网格控制对齐、分布、换行等,前端熟悉的同学易上手,参数设置基本一致。 阅读详情

相关推荐

QGIS效率提升神器:qgis_mcp插件+VSCode联合工作流配置全解析

本文详细解析了如何通过配置qgis_mcp插件与VSCode的联合工作流,实现语音控制和代码自动化来大幅提升QGIS操作效率。该方案将自然语言交互与现代编辑器生态结合,为地理信息专业人士构建了智能、高效的全新工作模式,彻底改变传统GIS操作方式。

weixin_29228203的博客 191

numpy中把两个数组拼接的方法

在Python的NumPy库中,有多种方式可以把两个数组融合(合并)在一起。

ThreeS_tones的博客 1362

PMSM单电阻采样避坑指南:如何解决非观测区电流重构难题(附ST专利分析)

本文深入解析了PMSM单电阻采样技术中的非观测区电流重构难题,并详细介绍了ST专利方案及移相法的工程实践。通过优化PWM调制策略和系统级调试方法,有效解决了相电流检测精度问题,为电机控制领域的工程师提供了实用的技术指南。

weixin_33737774的博客 632

Numpy 拼接数组的各种方式

Numpy 拼接数组的各种方式拼接方法介绍numpy.append(arr, values, axis=None)numpy.concatenate((a1, a2, ...), axis=0, out=None)stack(), hstack(), vstack()np.r_ 和 np.c_总结将两个一维数组拼接成一个更长的一维数组:将两个一维数组拼接成二维数组:拼接两个二维数组 拼接方法介绍 ...

XnCSD的博客 1万+

【CarMaker实战指南】从零构建环形测试场景与车辆连续仿真

本文详细介绍了如何使用CarMaker软件从零构建环形测试场景与实现车辆连续仿真。通过分步指导搭建闭环道路、连接交叉路口、规划车辆轨迹等核心操作,帮助用户掌握CarMaker的基础应用技巧,并提供了常见问题排查与进阶优化建议,适用于车辆耐久性测试和自动驾驶算法验证等场景。

weixin_29274969的博客 235

CUDA系列-Stream-1

This section describes static aspects of the CUSW_UNIT_STREAM unit’s architecture.和stream相关的其它Unit主要有Channel,Sync,Memmgr A CUDA stream is a software FIFO queue that allows commands like kernel launch and memcpy to be enqueued in it. The enqueued commands

weixin_43360707的博客 734

Python NumPy 连接数组

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 连接数组(array)

weixin_64338372的博客 3492

【OCCT】第3讲 OpenCasCade&VTK实现三维建模Demo

本文分享OpenCasCade&VTK共同实现三维建模Demo,希望对各位小伙伴有所帮助!1. 新建Visual Studio工程新建空项目添加main.cpp添加main函数2. 配置OpenCasCade & VTK 库配置包含路径:配置库文件:添加链接库:添加运行环境:注意:VTK库的版本要与编译OpenCasCade库时选择的版本一致,否则会出错!

qq_40041064的博客 781

Numpy拼接两个数组

连接两个数组有很多方法,当处理数据量较大的时候就需要考虑哪种方式最快了。 import numpy as np from timeit import repeat # 方法1 def f1(): a = np.array([[1, 2, 3], [1, 2, 3]]) b = np.array([[1, 2, 3], [1, 2, 3]]) c = np.row_st...

DDremote的博客 4225

2024最新版:MacOS Sonoma系统下CocoaPods安装全攻略(解决Ruby版本冲突)

本文详细介绍了在MacOS Sonoma系统下安装CocoaPods的全过程,重点解决Ruby版本冲突问题。通过HomeBrew安装最新Ruby版本,配置环境变量,并正确安装CocoaPods,帮助iOS开发者顺利管理项目依赖。文章还提供了常见问题的解决方案和优化配置建议,确保开发环境的稳定性和高效性。

lll78的博客 1042

nicegui 可视化扩展库

总体来说,这段代码使用nicegui库创建了一个具有一些基本UI元素的界面,并使用扩展库来实现更多的布局功能。这段代码使用了nicegui库创建了一个UI界面。函数导入了一个扩展库,用于实现更多的布局功能。然后又使用了一个行布局,并添加了两个按钮(在UI界面中,使用了一个卡片(在行布局中依次添加了一个标签(在卡片中使用了一个头像(接下来使用了一个行布局(设置了背景颜色为绿色。设置了居中对齐和红色。设置了间距和字体大小。设置了居中对齐和样式。设置了按钮的对齐方式。

东方佑 1021

numpy数组拼接方法介绍

数组拼接方法一 思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。 示例1: >>> import numpy as np >>> a=np.array([1,2,5]) >>> b=np.array([10,12,15]) >>> a_list=list(a) >>> b_list=list(b) >>> a_l

zyl1042635242的专栏 29万+

基于YOLOv8与UI界面的短视频内容审核系统实现与深度学习应用

YOLO(You Only Look Once)是一种用于实时物体检测的深度学习模型,它能在单次前向传播中同时完成物体检测和定位。YOLOv8是YOLO系列中的最新版本,相较于之前的版本,YOLOv8具有更高的检测精度和更快的推理速度,特别适合需要实时检测的应用场景。YOLOv8通过卷积神经网络(CNN)来提取图像中的特征,并通过多个卷积层来预测每个目标的位置和类别。该模型的优势在于其端到端的结构,使得在视频监控、自动驾驶、安防监控等实时应用中,能够实现快速且高效的目标检测。

YOLO 314

numpy中数组的拼接

这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star github地址 python中的科学计算包numpy是一个非常好的扩展工具,numpy中最常见的就是针对数组ndarray的操作,部分操作与python内置的list(其拼接方式为append和extend)有重合,不过要注意使用方式,除此之外,针对ndarray进行数组拼接时有其自己的方式. 接下来介绍我所知...

Great haste makes great waste 6万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python/Numpy之数组拼接组合

一.矩阵拼接合并 import numpy as np 1.方法一append array3= np.append(array1,array2) 两个矩阵拉伸一维拼接 array3= np.append(array1,array2,axis=0)两个矩阵按列拼接 array3= np.append(array1,array2,axis=1)两个矩阵按行拼接 2.方法二stack array3= np.stack(array1,array2)两个矩阵组合为高维矩阵 array3= np.vstack

Snfiltration 4461

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python-numpy数组拼接方法介绍

数组拼接方法一 思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。 示例1: >>> import numpy as np >>> a=np.array([1,2,5]) >>> b=np.array([10,12,15]) >>> a_list=list(a) >>> b_list=list(b)

tiankong_的博客 7902

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python 矩阵列拼接_numpy数组拼接简单示例

NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:·实际的数据·描述这些数据的元数据大部分操作仅针对于元数据,而不改变底层实际的数据。关于NumPy数组有几点必需了解的:·NumPy数组的下标从0开始。·同一个NumPy数组中所有元素的类型必须是相同的。NumPy数组属性在详细介绍NumPy数组之前。先详细介绍下NumPy数组的基本属性。NumPy数组的维数称为秩(rank),...

weixin_29913191的博客 3364

python矩阵拼接_numpy数组拼接简单示例_python

这篇文章主要介绍了numpy数组拼接简单示例,涉及对numpy数组的介绍,numpy数组的属性等内容,具有一定借鉴价值,需要的朋友可以参考下。NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:·实际的数据·描述这些数据的元数据大部分操作仅针对于元数据,而不改变底层实际的数据。关于NumPy数组有几点必需了解的:·NumPy数组的下标从0开始。·同一个NumPy数组中所有元素的类...

weixin_39901518的博客 1104

NumPy 数组拼接的高级技巧与实践

NumPy 提供了强大的数组操作功能,使得数组的拼接变得简单而高效。通过合理使用和np.vstack,我们可以轻松地将不同形状的数组组合成所需的结构。在实际应用中,关注数据一致性、性能优化以及灵活的代码设计,将使我们能够更高效地处理复杂的数组操作任务。掌握这些技巧不仅能够提升数据处理的效率,还能为更高级的数据分析和机器学习任务奠定坚实的基础。通过不断的实践和探索,我们能够更加熟练地运用 NumPy 的强大功能,解决实际问题中的各种挑战。

T20151470的博客 1281

numpy里面几种数组拼接方法

numpy里面的几种数组拼接方法,学会可以节省很多时间

ZGP1234的博客 6419

python,四个numpy数组 拼接

在 Python 中,如果你需要 ​在循环中收集多个(N, 4)的 NumPy 数组,并最终将它们 ​堆叠成一个(M, 4)的大数组。

Kp0fS的草稿纸 769

NumPy 数组拼接与分割

NumPy 提供了多种方法用于​​数组拼接(Concatenation)​​和​​分割(Splitting),这些操作在数据预处理、特征工程和结果整合中至关重要。

Humbunklung的专栏 723

numpy中的数组拼接、数组合并方法总结

numpy中数组拼接、数组合并方法总结

Old_D7的博客 7787

numpy(七)——数组拼接

numpy(七)——数组拼接 import numpy as np 用concatenate方法进行拼接 np.concatenate concatenate((a1, a2, …), axis=0) Join a sequence of arrays along an existing axis. arr_x = np.array([1,2,3,4,5]) arr_y = np.arr...

weixin_40321125的博客 509
上一篇: Numpy数组切片总结
下一篇: Numpy多维数组的点乘规律总结
daimashiren
博客等级 码龄9年 97粉丝 51原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daimashiren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值