NumPy入门系列②:数组操作进阶指南——重塑、合并与分割核心技巧

news/2025/3/30 18:04:17/文章来源:https://www.cnblogs.com/ffff5/p/18797133

1 重塑数组

1.1 reshape():调整数组维度

import numpy as np# 示例数组
arr = np.arange(12)  # 重塑为3行4列的二维数组
reshaped = arr.reshape(3, 4)
print(reshaped)# 使用 -1 自动计算某一维度
auto_reshape = arr.reshape(2, -1)  # 2行,自动计算列数(6列)
print(auto_reshape.shape)  # 注意:元素总数必须一致,否则报错 ValueError
[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]
(2, 6)

1.2 flatten():展平为⼀维数组

# 将多维数组展开为一维(返回拷贝)
matrix = np.array([[1, 2], [3, 4]])
flattened = matrix.flatten()  
print(flattened)# 修改展平后的数组不影响原数组
flattened[0] = 100
print(matrix)  # 原数组不变
[1 2 3 4]
[[1 2][3 4]]

2 合并数组

2.1 np.concatenate():通用拼接

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])# 沿行方向(axis=0)拼接(垂直堆叠)
vertical = np.concatenate((a, b), axis=0)
print(vertical)# 沿列方向(axis=1)拼接(需维度匹配)
c = np.array([[7], [8]])
horizontal = np.concatenate((a, c), axis=1)
print(horizontal)
[[1 2][3 4][5 6]]
[[1 2 7][3 4 8]]

2.2 np.vstack() 与 np.hstack()

# vstack:垂直堆叠(等效于 concatenate(axis=0))
v_combined = np.vstack((a, b))  # 结果同上文 vertical
print(v_combined)
# hstack:水平堆叠(等效于 concatenate(axis=1))
d = np.array([[5, 6]])
h_combined = np.hstack((a, d.T))  # 转置后拼接
print(h_combined)
[[1 2][3 4][5 6]]
[[1 2 5][3 4 6]]

3 分割数组

3.1 np.split():按索引或份数分割

arr = np.arange(9)  # [0 1 2 3 4 5 6 7 8 9]# 等量分割为3份(需可整除)
subarrays = np.split(arr, 3)
print(subarrays)  # 按指定位置分割(索引点为2和5)
split_at = [2, 5]
parts = np.split(arr, split_at)
print(parts)# 二维数组分割示例
matrix = np.array([[1,2,3], [4,5,6], [7,8,9]])
split_rows = np.split(matrix, 3, axis=0)  # 按行分割为3个单行数组
print(split_rows)
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]
[array([0, 1]), array([2, 3, 4]), array([5, 6, 7, 8])]
[array([[1, 2, 3]]), array([[4, 5, 6]]), array([[7, 8, 9]])]

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

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

相关文章

2022CCPC Online Contest G - Name the Puppy

对正串和反串分别建立 Trie 树,定义 \(dp[i][j]\) 表示正串 Trie 树上编号为 \(i\) 的点匹配反串 Trie 树上编号为 \(j\) 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明,拼出来的 anti-bo…

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…

第2章 C#2

第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合:数组普通对象集合 如 ArrayList​、Hashtable​专用类型集合 如 StringCollection​// 数组 static string[] GenerateNames() {string[] names = new string[4];names…

ESP32S3串口UART0,UART1UART2,软件模拟串口,USB虚拟串口的使用 - 基于ArduinoIDE

硬件串口的使用 硬件资源我使用的具体的模组型号为 ESP32-S3-WROOM-1(U), 根据官方手册其有3个串口。UART0:通常用于下载和输出调试信息串口,信号管脚默认与 GPIO43(TX) ~ GPIO44(RX) 复用,可以通过 GPIO 交换矩阵连接到任意 GPIO. UART1:信号管脚默认与 GPIO17(TX) ~ GPIO…

从0搭建nacos单点、集群

主机IP 主机名10.0.0.91 elk9110.0.0.92 elk9210.0.0.93 elk93nacos单机部署使用内置数据库 1.下载解压nacos [root@elk91 ~]# wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz[root@elk91 ~]# tar xf nacos-server-2.5.1.tar.gz -C…

ESP32在ArduinoIDE中的配置

🟡 注意 使用 Arduino IDE 开发 ESP32 时除了要看 Arduino 官方的资料一定还要看乐鑫的支持包的资料。详见↗️ 安装ArduinoIDE 到 Arduino 官网 下载最新版的 Arduino IDE 并安装。 🟡 压缩包格式的下载选项意义不大,Arduino IDE 2 无法制作为便携版,参考:绿色(Portabl…

文献阅读《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

参考博客: 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 摘要 为将CNN推广到高维图结构数据中,基于spectral graph theory(谱图理论),设计了一种通用的fast local…

1013 Div3 F题目加注释

https://codeforces.com/contest/2091/problem/F这题主题思路就是递推,从下往上递推,然后用差分和前缀合得到下一行可能性,详细看代码注释点击查看代码 #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const…