PythonNumPy教程_数组计算与向量化操作

千瑶君_9083

千瑶君_9083

2026-01-12

773人浏览

原创

NumPy的核心优势在于高效数组计算和向量化操作,支持广播、布尔索引、轴向聚合等机制,大幅提升性能与可读性。

pythonnumpy教程_数组计算与向量化操作

NumPy 的核心优势在于高效数组计算和向量化操作——它让原本需要循环的逐元素运算,变成一行代码就能完成的批量处理,速度快、代码简、可读性强。

数组创建与基础属性

掌握数组的生成方式和关键属性是向量化操作的前提。常用创建方式包括 np.array()(从列表/元组转换)、np.zeros()、np.ones()、np.arange() 和 np.linspace()。

  • shape 返回维度大小,如 (3, 4) 表示 3 行 4 列
  • dtype 指明数据类型,如 int64 或 float32,影响内存占用和计算精度
  • ndim 表示数组维数,标量为 0,一维数组为 1,二维为 2
  • 修改 reshape() 可在不复制数据的前提下改变结构,例如 a.reshape(2, -1) 自动推导列数

向量化运算:告别 for 循环

NumPy 对数组直接支持加减乘除、幂、三角函数等运算,这些操作自动广播到每个元素,底层用 C 实现,远快于 Python 循环。

  • 两个相同形状数组相加:a + b 是逐元素相加,不是拼接
  • 标量与数组运算会自动广播,如 a * 2.5 把每个元素乘以 2.5
  • 不同形状数组也可运算,只要满足广播规则(从后往前比对维度,某维为 1 或相等即可),例如 (4, 1) 数组可与 (1, 3) 相加,结果为 (4, 3)
  • 常用向量化函数:np.sin()、np.exp()、np.log()、np.maximum(a, b)

索引、切片与布尔索引

灵活选取数据是分析的关键,NumPy 提供多种高效索引方式,全部返回视图(不复制数据),节省内存。

macOS UI 自动化技能包 —— 用 Python 控制你的 Mac
macOS UI 自动化技能包 —— 用 Python 控制你的 Mac

让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限

下载
  • 普通切片如 a[1:4, 2] 支持步长、负索引,且修改会影响原数组
  • 整数数组索引可按指定顺序提取行或列,如 a[[0, 2, 1]] 重排第 0、2、1 行
  • 布尔索引最实用:用条件表达式生成 True/False 数组,直接筛选,如 a[a > 0] 取所有正数;a[(a > 1) & (a 注意用 & 而非 and
  • np.where() 可返回满足条件的索引位置,也支持三元选择:np.where(a > 0, a, 0) 将负数变 0

聚合函数与轴向操作

统计类计算(如求和、均值、最大值)默认作用于整个数组,但通过 axis 参数可指定沿哪一维进行,这是多维数据分析的核心。

  • axis=0 表示按列操作(压缩行),axis=1 表示按行操作(压缩列)
  • 例如二维数组 b,b.sum(axis=0) 返回每列之和,长度等于列数
  • 常用函数都支持 axis 和 keepdims=True(保持维度,方便后续广播)
  • np.argmax() 和 np.argmin() 返回最大/最小值的索引位置,配合 axis 可定位每行最大值所在列号

向量化不是炫技,而是 NumPy 发挥性能和表达力的基础。写好数组形状、理解广播机制、善用布尔索引和轴向聚合,就能把多数数据分析任务从繁琐循环中解放出来。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.31

3191

5

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

2025.10.31

554

9

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

2026.02.12

542

19

go语言 数组和切片
go语言 数组和切片

本专题整合了go语言数组和切片的区别与含义,阅读专题下面的文章了解更多详细内容。

2025.09.03

1952

14

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

40

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

20

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

40

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

140

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

80

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习