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

【python】三种方式实现将2个3×5数组拼接形成6×5数组

文章目录

  • 结果示例
  • np.concatenate(original_array, axis=0)
      • 代码解释:
      • 结果
  • original_array.reshape(-1, 5)
      • 示例代码:
      • 代码解释:
  • vstack((array1, array2))

结果示例

  • 有一个N维3*5大数组,我倾向于使用concatenate
Original Array (2x3x5):[[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14]][[15 16 17 18 19][20 21 22 23 24][25 26 27 28 29]]]Reshaped Array (6x5):[[ 0  1  2  3  4][ 5  6  7  8  9][10 11 12 13 14][15 16 17 18 19][20 21 22 23 24][25 26 27 28 29]]

np.concatenate(original_array, axis=0)

沿着第一个维度进行拼接意味着要将原始数组的第一个维度扩展,从而将多个块沿着这个维度排列在一起。对于形状为 2 × 3 × 5 2 \times 3 \times 5 2×3×5 的数组,这意味着将两个形状为 3 × 5 3 \times 5 3×5 的块连接起来,形成一个新的形状为 6 × 5 6 \times 5 6×5 的数组。

以下是如何实现这一操作的代码示例:

import numpy as np# 创建一个 2x3x5 的示例数组
original_array = np.arange(30).reshape(2, 3, 5)# 沿着第一个维度进行拼接
# 先将第一个维度与第二个维度调换,再将数组展平
concatenated_array = np.concatenate(original_array, axis=0)# 打印结果
print("Original Array (2x3x5):\n", original_array)
print("\nConcatenated Array (6x5):\n", concatenated_array)

代码解释:

  1. 创建原始数组original_array 是一个形状为 2 × 3 × 5 2 \times 3 \times 5 2×3×5的数组,其中有 2 个块(深度),每个块包含 3 行,每行有 5 列。
  2. 沿第一个维度拼接
    • np.concatenate(original_array, axis=0) 使用 np.concatenate 函数沿着第一个维度(即轴0)进行拼接。这里的 axis=0 表示将第一个维度的元素扩展,即将每个形状为 3 × 5 3 \times 5 3×5 的块一个接一个地堆叠起来。
    • 结果将是一个形状为 (6 \times 5) 的数组 concatenated_array

结果

通过这种方法,您将原始的 2 × 3 × 5 2 \times 3 \times 5 2×3×5 数组中的两个块沿着第一个维度拼接在一起,生成一个新的 6 × 5 6 \times 5 6×5 数组。这个操作保留了每个块的行和列结构,只是简单地将它们堆叠起来。

original_array.reshape(-1, 5)

要将一个形状为 2 × 3 × 5 2 \times 3 \times 5 2×3×5 的数组拼接成一个形状为 6 × 5 6 \times 5 6×5 的数组,可以通过将前两个维度 “平铺” 成一个维度来实现。这可以通过使用 NumPy 的 reshapereshapeswapaxes 组合来实现。以下是详细的步骤和代码:

示例代码:

import numpy as np# 创建一个 2x3x5 的示例数组
original_array = np.arange(30).reshape(2, 3, 5)# 将数组重新形状为 6x5
reshaped_array = original_array.reshape(-1, 5)# 打印结果
print("Original Array (2x3x5):\n", original_array)
print("\nReshaped Array (6x5):\n", reshaped_array)

代码解释:

  1. 创建原始数组original_array 是一个形状为 2 × 3 × 5 2 \times 3 \times 5 2×3×5的数组,其中有 2 个块(深度),每个块包含 3 行,每行有 5 列。
  2. 重塑数组reshaped_array = original_array.reshape(-1, 5) 通过将第一个和第二个维度 “平铺” 成一个维度,创建一个形状为 6 × 5 6 \times 5 6×5 的数组。-1 表示让 NumPy 自动计算该维度的大小,因此 2 * 3 = 6,数组被展平为 6 行,每行有 5 列。

这样,您就可以将原始的 2 × 3 × 5 2 \times 3 \times 5 2×3×5数组转换为 6 × 5 6 \times 5 6×5 的数组。这个操作在保持数组数据顺序不变的情况下,将数组的形状调整为新的形状。

vstack((array1, array2))

将两个形状为 3 × 5 3 \times 5 3×5 的数组垂直拼接成一个形状为 6 × 5 6 \times 5 6×5的数组:

import numpy as np# 创建两个 3x5 的示例数组
array1 = np.arange(15).reshape(3, 5)
array2 = np.arange(15, 30).reshape(3, 5)# 拼接数组
result_array = np.vstack((array1, array2))print("Array 1:\n", array1)
print("\nArray 2:\n", array2)
print("\nResult Array:\n", result_array)

在这段代码中:

  1. array1array2 是两个形状为 3 × 5 3 \times 5 3×5 的数组。
  2. 使用 np.vstack((array1, array2)) 将这两个数组垂直堆叠,形成一个新的形状为 6 × 5 6 \times 5 6×5 的数组 result_array

np.vstack 函数用于沿着垂直(第一个)轴堆叠数组,它接受一个数组列表作为参数。您可以在本地环境中运行此代码以验证结果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 了解消息中间件TongLINK/Q
  • 实验5-1 使用函数计算两点间的距离
  • 以西门子winCC为代表的组态界面,还是有很大提升空间的。
  • 【C++】文件IO流
  • 涨点发论文神器:即插即用多尺度融合模块!
  • web以及nginx
  • 【网络世界】HTTPS协议
  • 《程序猿入职必会(5) · CURD 页面细节规范 》
  • logstash 全接触
  • 深入了解-什么是CUDA编程模型
  • CUDA的(详细版)占用率优化策略
  • 使用docker在CentOS 7上安装php+mysql+nginx环境教程并运行WordPress
  • testRigor-基于人工智能驱动的无代码自动化测试平台
  • 漏洞复现-路由器TOTOLINK-A6000R-RCE
  • 【vue2+elementui】记录el-upload文件上传时调接口传参的几种情况
  • [ JavaScript ] 数据结构与算法 —— 链表
  • CODING 缺陷管理功能正式开始公测
  • docker容器内的网络抓包
  • Elasticsearch 参考指南(升级前重新索引)
  • Fastjson的基本使用方法大全
  • Javascript Math对象和Date对象常用方法详解
  • Python_OOP
  • Python学习之路13-记分
  • Sass Day-01
  • Shadow DOM 内部构造及如何构建独立组件
  • SpiderData 2019年2月23日 DApp数据排行榜
  • STAR法则
  • Sublime Text 2/3 绑定Eclipse快捷键
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Vue 重置组件到初始状态
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue学习第二天
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 七牛云假注销小指南
  • 前端攻城师
  • 巧用 TypeScript (一)
  • 三栏布局总结
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 云大使推广中的常见热门问题
  • 阿里云ACE认证之理解CDN技术
  • 如何在招聘中考核.NET架构师
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (27)4.8 习题课
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (动态规划)5. 最长回文子串 java解决
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十六)串口UART
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包