用Python进行AI数据分析进阶教程17:NumPy库基础概述
核心关键词:NumPy库入门、ndarray数组对象、矢量化运算、多维数组处理、Python科学计算应用。
内容摘要:NumPy是Python生态中不可或缺的科学计算库,专为高效存储和批量运算而生,支持矢量化操作与丰富数学函数,能够轻松处理多维数组。其核心数据结构ndarray具备shape、dtype、ndim等关键属性。常用操作涵盖数组创建、索引与切片、元素级运算以及形状变换。NumPy在科学计算、数据分析、机器学习、深度学习及信号处理等众多领域扮演着基础性角色,是数据工作者手中的利器。
NumPy这个名字在Python世界里几乎等同于“科学计算”的代名词。通俗地讲,它是一个专为高效处理多维数组而诞生的扩展库。下面我们一起来梳理它的基础脉络,帮助初学者快速上手。
1、定义与特点
定义:NumPy(Numerical Python)是Python语言的一个扩展程序库,其核心能力在于支持大量维度数组与矩阵运算,并提供了极其丰富的数学函数库,专门针对数组操作进行了深度优化。
特点
- 高效存储与计算:底层采用C语言数组存储方式,处理大规模数据时性能远超Python原生列表,计算速度实现质的飞跃。
- 矢量化操作:允许对数组进行批量元素级运算,无需手动编写循环代码,既简洁又高效,可读性大幅提升。
- 丰富的数学函数:三角函数、指数、对数、统计函数……几乎所有常见的数学运算都有现成函数可供直接调用。
- 支持多维数组:从一维到任意高维,图像、音频、视频等多维数据都能轻松容纳和处理。
2、主要对象
ndarray——N维数组对象,NumPy的核心中的核心。它是由相同类型元素组成的多维数组,以下几个关键属性必须掌握:
- shape:数组的形状,用元组表示每个维度的大小。例如 (3, 4) 表示3行4列的二维数组。
- dtype:数组中元素的数据类型,如 int32、float64、bool 等。
- ndim:数组的维度数量,即轴的个数。
3、常用操作
(1)创建数组
- 使用数组字面量:最直接的方式,通过
numpy.array()将Python列表或元组转换为NumPy数组。例如np.array([1, 2, 3, 4])即可得到一个一维数组。 - 使用特定构造函数:
numpy.zeros()、numpy.ones()、numpy.arange()等函数专门用于生成特定结构的数组。例如np.zeros((3, 4))会创建一个3行4列的全零二维数组。
(2)数组索引和切片
索引与切片操作与Python列表基本一致,可用于访问或修改数组元素。对于二维数组,arr[i, j] 获取第i行第j列的元素;arr[:, 1] 提取所有行的第二列。灵活运用索引与切片可以高效提取数据子集。
(3)数组运算
- 算术运算:加、减、乘、除等操作直接在对应元素上进行。两个形状相同的数组相加,结果是对应位置的元素相加。
- 逻辑运算:例如
arr > 5会返回一个布尔数组,满足条件的元素位置为 True,否则为 False。这种操作在数据筛选和掩码处理时非常实用。
(4)数组变形
- reshape:
reshape()方法用于改变数组的形状,前提是元素总数保持不变。例如arr.reshape((2, 6))可以将一维数组变为2行6列的二维数组。 - transpose:用于二维数组的行列互换,即转置。可以直接使用
arr.T或arr.transpose()实现。
4、应用领域
- 科学计算:在物理、化学、生物学等领域的实验数据处理与数值模拟中,NumPy是标配工具。
- 数据分析:与Pandas协同工作,完成数据清洗、转换、统计等核心任务。
- 机器学习和深度学习:数据预处理、特征工程、模型训练与评估均离不开NumPy。例如将图像数据转换为NumPy数组,或者存储神经网络的权重与中间激活值。
- 信号处理:音频、视频的采样、滤波、变换等操作,底层都依赖NumPy的高效数组运算能力。
——The END——
