news 2026/8/13 9:13:48

从零到一:数组定义与NumPy操作实战闯关指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零到一:数组定义与NumPy操作实战闯关指南

1. 初识数组:从Python列表到NumPy数组

第一次接触数组这个概念时,我完全被各种术语搞晕了。直到后来才发现,数组其实就是一种特殊的数据容器,它能帮我们高效地存储和处理大量数据。在Python中,最简单的数组形式就是我们熟悉的列表(list)。比如:

L1 = [1, 2, 3, 4, 0.1, 7] # 一维数组 L2 = [[1, 2, 3, 4], (5, 6, 7, 8)] # 二维数组

但Python原生的列表在处理数值计算时效率很低,这时候就该NumPy登场了。NumPy是Python科学计算的基石,它提供的ndarray对象(N-dimensional array)比普通列表快几十倍。我第一次用NumPy处理10万条数据时,原本需要5秒的计算瞬间缩短到0.1秒,那种震撼至今难忘。

为什么NumPy这么快?因为它底层是用C语言实现的,而且所有元素必须是同类型的。比如下面这个例子,当我们用NumPy创建数组时,所有元素会自动转换为浮点数:

import numpy as np arr = np.array([1, 2, 3.5]) # 自动转为[1. 2. 3.5]

2. 创建数组的5种必备姿势

在实际项目中,我总结出5种最常用的数组创建方式,每一种都有独特的应用场景。

2.1 全零/全一阵列

做图像处理时,经常需要创建空白画布。np.zeros()np.ones()就是你的好帮手:

# 创建3x3的全零矩阵(适合初始化权重矩阵) zero_matrix = np.zeros((3, 3)) # 创建2x2x3的全一三维数组(适合RGB图像占位) one_cube = np.ones((2, 2, 3))

2.2 等差数列生成

处理时间序列数据时,np.arange()比循环优雅多了。记得有次处理传感器数据,我这样生成时间戳:

time_points = np.arange(0, 10, 0.5) # 从0到10,步长0.5

2.3 随机数组

机器学习中经常需要随机初始化参数。np.random模块提供了多种随机生成方式:

# 均匀分布(模拟掷骰子) dice_rolls = np.random.uniform(1, 7, size=10) # 正态分布(模拟身高数据) heights = np.random.normal(175, 10, 1000)

2.4 从现有数据创建

处理CSV数据时,我常用这种方式:

data = [[1, 2], [3, 4]] arr = np.array(data) # 自动转为二维数组

2.5 特殊矩阵

线性代数运算时,这些函数特别实用:

identity = np.eye(3) # 3x3单位矩阵 diagonal = np.diag([1, 2, 3]) # 对角矩阵

3. 数组运算:从加减乘除到三角函数

NumPy最强大的地方在于它的向量化运算能力。记得我刚学编程时,曾用循环计算数组平方,被同事笑话了半天。正确的打开方式是这样的:

arr = np.array([1, 2, 3]) squared = arr ** 2 # [1, 4, 9]

3.1 基础数学运算

处理传感器数据时,经常需要标准化:

sensor_data = np.random.rand(100) normalized = (sensor_data - np.min(sensor_data)) / (np.max(sensor_data) - np.min(sensor_data))

3.2 三角函数应用

做游戏开发时,计算物体旋转轨迹:

angles = np.linspace(0, 2*np.pi, 100) x = np.cos(angles) y = np.sin(angles)

3.3 矩阵乘法

神经网络中的全连接层计算:

weights = np.random.randn(100, 50) inputs = np.random.randn(50) outputs = np.dot(weights, inputs) # 或者 weights @ inputs

4. 切片与索引:精准提取数据

第一次处理Excel数据时,我手动复制粘贴了200多行,后来学会切片操作后,同样工作只需1行代码。

4.1 基础切片

处理图像数据时,经常需要截取ROI区域:

image = np.random.rand(100, 100) # 模拟100x100图像 roi = image[10:30, 40:60] # 高20像素,宽20像素的区域

4.2 高级索引

从数据集中随机抽样:

data = np.arange(100) indices = [3, 15, 27] samples = data[indices]

4.3 布尔索引

筛选满足条件的数据点:

temperatures = np.random.normal(25, 5, 100) hot_days = temperatures[temperatures > 30]

5. 数组拼接:组合数据的艺术

处理多源数据时,拼接操作必不可少。有一次处理卫星图像,需要把多个波段数据合并,差点被循环逼疯,后来发现np.concatenate这个神器。

5.1 垂直拼接

合并多个CSV文件:

data1 = np.loadtxt('file1.csv') data2 = np.loadtxt('file2.csv') combined = np.vstack((data1, data2))

5.2 水平拼接

添加新特征列:

features = np.random.rand(100, 5) labels = np.random.randint(0, 2, (100, 1)) dataset = np.hstack((features, labels))

5.3 深度拼接

处理多通道图像:

red = np.random.rand(100, 100) green = np.random.rand(100, 100) blue = np.random.rand(100, 100) rgb = np.dstack((red, green, blue))

在实际项目中,我发现很多初学者容易混淆hstackvstack。有个简单的记忆方法:想象字母"h"的横杠是水平的,"v"的竖线是垂直的。遇到维度不匹配的问题时,不妨先用reshape调整形状。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:49:01

网盘直链解析技术实战指南:从原理到行业应用优化方案

网盘直链解析技术实战指南:从原理到行业应用优化方案 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…

作者头像 李华
网站建设 2026/7/14 15:49:03

Llama-3.2V-11B-cot效果对比评测:相比Llava-1.6在推理深度上的提升展示

Llama-3.2V-11B-cot效果对比评测:相比Llava-1.6在推理深度上的提升展示 最近,视觉语言模型领域又有了新动静。如果你之前用过Llava-1.6这类模型,可能会觉得它们看图说话的能力已经不错了,能识别物体、描述场景。但当你问一些需要…

作者头像 李华
网站建设 2026/7/14 15:49:03

如何突破macOS NTFS写入限制?Free-NTFS-for-Mac工具全解析

如何突破macOS NTFS写入限制?Free-NTFS-for-Mac工具全解析 【免费下载链接】Free-NTFS-for-Mac Nigate,一款支持苹果芯片的Free NTFS for Mac小工具软件。NTFS R/W for macOS. Support Intel/Apple Silicon now. 项目地址: https://gitcode.com/gh_mir…

作者头像 李华
网站建设 2026/7/14 15:49:04

网络优化策略:加速Lingbot深度模型分布式训练与推理

网络优化策略:加速Lingbot深度模型分布式训练与推理 在尝试将Lingbot这类大型模型投入实际生产时,很多团队都会遇到一个共同的瓶颈:网络。无论是用几十张显卡进行分布式训练,还是为成百上千的用户提供实时推理服务,缓…

作者头像 李华
网站建设 2026/7/14 15:49:04

开源工具配置完全指南:从环境搭建到性能优化

开源工具配置完全指南:从环境搭建到性能优化 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirrors/ap/A…

作者头像 李华
网站建设 2026/7/14 15:49:16

SenseVoice-Small语音识别模型在工业质检中的应用实践

SenseVoice-Small语音识别模型在工业质检中的应用实践 语音识别技术正在工业领域掀起一场静悄悄的变革,而SenseVoice-Small作为轻量级但能力不俗的语音识别模型,正在为工业质检带来全新的智能化解决方案。 1. 工业质检的语音智能化需求 工业质检环节一直…

作者头像 李华