当前位置: 首页 > news >正文

np.concatenate

np.concatenate() 是 NumPy 中用于沿指定轴连接多个数组的核心函数。它可以将多个数组在原有维度上合并,而不创建新的维度。以下是其详细用法和示例:

基本语法

python

运行

np.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")

  • (a1, a2, ...):需要连接的数组序列(元组或列表)。
  • axis:指定连接轴(默认 0,即垂直方向)。
  • out:可选参数,用于存储结果的数组。
  • dtype:指定结果的数据类型。

核心功能

  1. 沿指定轴合并数组:保持原有维度不变。
  2. 要求输入数组形状兼容:除 axis 维度外,其他维度必须相同。
  3. 支持多维数组:可处理 1D、2D、3D 等任意维度的数组。

示例解析

1. 一维数组(1D)的连接

python

运行

import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 沿轴 0 连接(一维数组只有一个轴)
result = np.concatenate((a, b))print(result)  # 输出:[1 2 3 4 5 6]
print(result.shape)  # 输出:(6,)
2. 二维数组(2D)的连接

python

运行

a = np.array([[1, 2], [3, 4]])  # 形状:(2, 2)
b = np.array([[5, 6]])          # 形状:(1, 2)# 沿轴 0 连接(垂直方向,行数增加)
result_axis0 = np.concatenate((a, b), axis=0)
print(result_axis0)
# 输出:
# [[1 2]
#  [3 4]
#  [5 6]]
print(result_axis0.shape)  # 输出:(3, 2)# 沿轴 1 连接(水平方向,列数增加)
c = np.array([[7], [8]])   # 形状:(2, 1)
result_axis1 = np.concatenate((a, c), axis=1)
print(result_axis1)
# 输出:
# [[1 2 7]
#  [3 4 8]]
print(result_axis1.shape)  # 输出:(2, 3)
3. 三维数组(3D)的连接

python

运行

a = np.ones((2, 3, 4))  # 形状:(2, 3, 4)
b = np.ones((2, 3, 4))  # 形状:(2, 3, 4)# 沿轴 0 连接
result0 = np.concatenate((a, b), axis=0)
print(result0.shape)  # 输出:(4, 3, 4)# 沿轴 1 连接
result1 = np.concatenate((a, b), axis=1)
print(result1.shape)  # 输出:(2, 6, 4)# 沿轴 2 连接
result2 = np.concatenate((a, b), axis=2)
print(result2.shape)  # 输出:(2, 3, 8)

与其他连接函数的区别

函数功能描述示例
np.concatenate沿指定轴连接,不创建新维度np.concatenate((a, b), axis=1)
np.stack沿新轴堆叠,增加一个维度np.stack((a, b), axis=0)
np.hstack水平方向连接(等价于 axis=1np.hstack((a, b))
np.vstack垂直方向连接(等价于 axis=0np.vstack((a, b))
np.dstack深度方向连接(等价于 axis=2np.dstack((a, b))
http://www.lryc.cn/news/576142.html

相关文章:

  • 【C/C++】C++26新特性前瞻:全面解析未来编程
  • ​​Oracle表空间全景指南:从扩容监控到碎片回收的终极实践​
  • 车载诊断架构--- 车载诊断中的引导式诊断
  • 人工智能-基础篇-3-什么是深度学习?(DL,卷积神经网络CNN,循环神经网络RNN,Transformer等)
  • 第六章 STM32内存管理
  • 学习接口自动化框架pytest有哪些好处?
  • 小程序 API 开发手册:从入门到高级应用一网打尽
  • C++学习之STL学习:vector的模拟实现
  • Java多线程与JUC
  • window显示驱动开发—DirectX 图形内核子系统(三)
  • RocketMQ 消息长轮询
  • 集群聊天服务器----CMake的使用
  • ServletConfig ServletContext
  • git add 报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 42
  • 【Elasticsearch】Linux环境下安装Elasticsearch
  • spring ai入门实例
  • LangChain4j(20)——调用百度地图MCP服务
  • Python Async 编程快速入门 | 超简明异步协程指南
  • java代码规范
  • 自动化保护 AWS ECS Fargate 服务:使用 Prisma Cloud 实现容器安全
  • 阶段二开始-第一章—8天Python从入门到精通【itheima】-116节(封装)
  • 鸿蒙HarmonyOS 5小游戏实践:记忆翻牌(附:源代码)
  • DHT11 STM32 HAL驱动库 整数
  • .NetCore+Vue快速生产框架开发详细方案
  • Chrome浏览器访问https提示“您的连接不是私密连接”问题解决方案
  • 已对接Shopee、Lazada、亚马逊等知名海外电商平台!商派DigiOS-OMS业务中台助力品牌扩展全球业务
  • 《Opto-Electronic Advances》热点论文速览(2025)
  • linux中python虚拟环境和版本的选择
  • 【Linux手册】进程终止:进程退出和信号的响应机制
  • VB.NET,C#字典对象来保存用户数据,支持大小写