【python】把6*5的数组变成3个2*5的新数组,第一行和第四行在一起,第二行和第五行在一起,第三行和第六行在一起,以及更复杂的9*5如何用循环实现

要将一个 6 × 5 6 \times 5 6×5 的数组变换为三个新的 2 × 5 2 \times 5 2×5 数组,并且让原数组的第1行和第4行成为第一个新数组,第2行和第5行成为第二个新数组,第3行和第6行成为第三个新数组,可以使用NumPy的索引和切片功能。

以下是实现这一转换的代码示例:

import numpy as np# 创建一个 6x5 的示例数组
original_array = np.arange(30).reshape(6, 5)# 按要求进行重组
new_array1 = original_array[[0, 3], :]
new_array2 = original_array[[1, 4], :]
new_array3 = original_array[[2, 5], :]# 显示结果
print("Original Array:\n", original_array)
print("\nNew Array 1:\n", new_array1)
print("\nNew Array 2:\n", new_array2)
print("\nNew Array 3:\n", new_array3)

在这段代码中:

  • original_array 是一个形状为 (6 \times 5) 的示例数组。
  • original_array[[0, 3], :] 选择了第1行和第4行组成新的数组 new_array1
  • original_array[[1, 4], :] 选择了第2行和第5行组成新的数组 new_array2
  • original_array[[2, 5], :] 选择了第3行和第6行组成新的数组 new_array3

这种方法利用了NumPy的高级索引功能,可以轻松地选择任意行的组合。

运行结果:

Original Array:[[ 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]]New Array 1:[[ 0  1  2  3  4][15 16 17 18 19]]New Array 2:[[ 5  6  7  8  9][20 21 22 23 24]]New Array 3:[[10 11 12 13 14][25 26 27 28 29]]

由于当前环境的限制,无法直接执行代码。但是,我可以为您提供在本地实现此功能的代码示例:

import numpy as np# 创建一个 9x5 的示例数组
original_array = np.arange(45).reshape(9, 5)# 初始化列表来存储新的 2x5 数组
new_arrays = []# 循环实现
for i in range(3):new_arrays.append(original_array[i::3, :])# 显示结果
print("Original Array:\n", original_array)
for idx, arr in enumerate(new_arrays):print(f"\nNew Array {idx+1}:\n", arr)

在这段代码中:

  • original_array 是一个形状为 9 × 5 9 \times 5 9×5 的示例数组。
  • 我们使用一个循环来创建新的数组,每个新的数组包含 original_array 的某些行。具体来说,i::3 的切片表示从索引 i 开始,以步长 3 选择行。因此,original_array[0::3, :] 选择第1、4、7行,original_array[1::3, :] 选择第2、5、8行,original_array[2::3, :] 选择第3、6、9行。

每个 new_arrays[i] 结果都是一个 3 × 5 3 \times 5 3×5 的新数组。您可以在本地运行这段代码,以查看和验证结果。

运行结果:

Original Array:[[ 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][30 31 32 33 34][35 36 37 38 39][40 41 42 43 44]]New Array 1:[[ 0  1  2  3  4][15 16 17 18 19][30 31 32 33 34]]New Array 2:[[ 5  6  7  8  9][20 21 22 23 24][35 36 37 38 39]]New Array 3:[[10 11 12 13 14][25 26 27 28 29][40 41 42 43 44]]

在NumPy中,语法 original_array[0::3, :] 表示对数组进行切片操作。具体而言:

  • 0 是起始索引,表示从数组的第0行(第一行)开始。
  • ::3 是步长,表示每隔3行选择一行。
  • : 是列的选择,这里表示选择所有列。

所以,original_array[0::3, :] 会选择原始数组的第1、4、7行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/387405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM大模型:十大人工智能大模型技术介绍

十大人工智能大模型技术的简介: 深度学习模型 深度学习是人工智能领域中一种重要的机器学习技术,通过构建深度神经网络来模拟人脑的认知过程。深度学习模型能够自动提取数据的特征,并在海量数据中进行学习和优化,从而在语音识别…

搭建规范化的vue2项目

项目包含的库 Vue2VuexRouterEslintPrettier 环境 vue:2.6.14 eslint:7.32.0 prettier:2.4.1 eslint-plugin-prettier:4.0.0 eslint-plugin-vue:8.0.3 vue/cli:5.0.8 步骤 全局安装cli工具 npm in…

CAE仿真软件怎样下载和安装?

CAE仿真软件是一类专业工程软件,通过数值计算和仿真技术,帮助工程师和设计师在计算机上模拟和分析各种工程问题,如结构强度、热传导、流体力学等,从而优化产品设计、减少试验成本,提高产品性能和质量。HyperWorks是常见…

快手文生图模型-Kolors快速上手

Kolors是什么 可图(Kolors):用于真实感文本到图像合成的扩散模型的有效训练 可图,是快手开源的一个文生图模型,架构上使用了chatglm,比普通的sd模型在中文理解上要强大很多,以往sd模型的提示词理解能力往往只有两种 …

二进制部署k8s集群之cni网络插件flannel和calico工作原理

3、部署 CNI 网络组件 在 master01 节点上操作 上传flannel-v0.21.5.zip并解压 unzip flannel-v0.21.5.zipscp flannel*.tar 192.168.80.20:/opt/k8s/ scp flannel*.tar 192.168.80.30:/opt/k8s/ node两个节点操作 cd /opt/k8s/ docker load -i flannel.tar docker load -i …

nginx代理设置时能获取到源IP地址的方法

nginx通过http_x_forwarded_for限制来访IP示例_ngnix 根据header的x-forwarded-for限制接入-CSDN博客 名称ip客户端地址10.0.23.90nginx服务器地址110.0.202.48:18888,代理到10.0.204.82:8888nginx服务器地址210.0.204.82:8888,代理到10.0.204.82:8887后…

自写ApiTools工具,功能参考Postman和ApiPost

近日在使用ApiPost的时候,发现新版本8和7不兼容,也就是说8不支持离线操作,而7可以。 我想说,我就是因为不想登录使用才从Postman换到ApiPost的。 众所周知,postman时国外软件,登录经常性抽风,…

leetcode 1555 银行账号概要(postgresql)

需求 用户表: Users --------------------- | Column Name | Type | --------------------- | user_id | int | | user_name | varchar | | credit | int | --------------------- user_id 是这个表的主键。 表中的每一列包含每一个用户当前的额度信息。 交易表&…

使用 Elastic Observability 中的 OpenTelemetry 进行基础设施监控

作者:来自 Elastic ISHLEEN KAUR 将 OpenTelemetry 与 Elastic Observability 相结合,形成应用程序和基础设施监控解决方案。 在 Elastic,我们最近决定全面采用 OpenTelemetry 作为首要的数据收集框架。作为一名可观察性工程师,我…

分享5款ai头像工具,助你轻松实现社交新形象

如今,无论是社交媒体上的个人形象塑造,还是虚拟世界中的角色扮演,一个独特而吸引人的AI头像都能成为你个性化的代表。 例如,ai头像男古风通常代表着一种对传统文化的尊重和热爱;而现代简约头像可能代表着一种追求简洁…

Mongodb集合操作

文章目录 1、进入容器2、如果数据库不存在,则创建数据库,否则切换到指定数据库3、在 MongoDB 中,创建集合不是必须操作。当你插入一些文档时,MongoDB 会自动创建集合。4、查看数据库列表5、查看集合6、显示创建集合7、删除集合 1、…

百度竞价托管如何判断关键词出价是否偏高

在百度竞价推广中,关键词出价的高低直接影响着广告的展示位置、点击率以及最终的转化效果。然而,过高的出价不仅会增加推广成本,还可能导致预算的浪费。因此,作为百度竞价托管 www.pansem.com 的专业团队,如何准确判断…

springboot校园跑腿服务系统-计算机毕业设计源码15157

摘要 本文介绍了一种基于Springboot和uniapp的校园跑腿服务系统的设计与实现。该系统旨在为大学校园提供一种方便快捷的跑腿服务,满足学生和教职员工的日常需求。首先,系统采用了Springboot作为后端框架,利用其轻量级、高效的特性&#xff0c…

httpx,一个网络请求的 Python 新宠儿

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能…

计算机网络-七层协议栈介绍

之前介绍了网络世界的构成,从宏观角度介绍了网络设备和网络架构,链接: link,但是这种认识过于粗糙,过于肤浅。网络本质上是用于主机之间的通信,是端对端的连接通信,两台计算机可能距离很远,主机…

thinkPHP开发的彩漂网站源码,含pc端和手机端

源码简介 后台thinkPHP架构,页面程序双分离,Mysql数据库严谨数据结构、多重数据审核机制、出票机制和监控机制,html5前端技术适用移动端,后台逻辑更多以server接口可快捷实现对接pc和ap,下载会有少量图片素材丢失,附件有下载说明前端demo账户密码和后台管理地址管理员账户密码…

C 语言动态链表

线性结构->顺序存储->动态链表 一、理论部分 从起源中理解事物,就是从本质上理解事物。 -杜勒鲁奇 动态链表是通过结点(Node)的集合来非连续地存储数据,结点之间通过指针相互连接。 动态链表本身就是一种动态分配内存的…

Java 8-函数式接口

目录 一、概述 二、 函数式接口作为方法的参数 三、函数式接口作为方法的返回值 四、 常用的函数式接口 简单总结 简单示例 4.1 Consumer接口 简单案例 自我练习 实际应用场景 多线程处理 4.2 Supplier接口 简单案例 自我练习 实际应用场景 配置管理 4.3 Func…

TypeError: Components is not a function

Vue中按需引入Element-plus时,报错TypeError: Components is not a function。 1、参考Element-plus官方文档 安装unplugin-vue-components 和 unplugin-auto-import这两款插件 2、然后需要在vue.config.js中配置webPack打包plugin配置 3、重新启动项目会报错 T…

Java----反射

什么是反射? 反射就是允许对成员变量、成员方法和构造方法的信息进行编程访问。换句话来讲,就是通过反射,我们可以在不需要创建其对象的情况下就可以获取其定义的各种属性值以及方法。常见的应用就是IDEA中的提示功能,当我…