一、引言
NumPy(Numerical Python)是 Python 中用于科学计算的核心库之一,它为 Python 提供了高性能的数组对象以及一系列用于操作这些数组的函数。无论是数据处理、机器学习还是科学计算领域,NumPy 都发挥着至关重要的作用。本文将围绕 NumPy 的数组操作、字符处理、数学计算等基础知识展开,帮助读者快速上手并理解其核心功能。
二、NumPy 数组基础与操作
(一)数组的创建与变形
- 数组创建:可以通过
np.array函数从列表等可迭代对象创建数组,也能用np.arange等函数生成连续数值的数组,如np.arange(10)能快速生成 0 到 9 的一维数组 。还可借助reshape方法改变数组形状,将一维数组转换为多维数组,像把包含 10 个元素的一维数组转成 2 行 5 列的二维数组arr.reshape(2, -1),其中-1表示让 NumPy 自动计算对应维度的大小。 - 数组堆叠:包括垂直堆叠(
np.vstack)和水平堆叠(np.hstack)。垂直堆叠可将两个形状合适的数组在垂直方向拼接,例如把两个 2 行 5 列的数组垂直堆叠成 4 行 5 列的新数组;水平堆叠则是在水平方向拼接,把两个 2 行 5 列的数组合并成 2 行 10 列的数组,方便整合不同来源但结构适配的数据。
(二)数组的拆分与重塑
- 数组拆分:利用
np.split等函数可按指定方式拆分数组,能根据索引或数量将数组拆分成多个子数组,满足数据分段处理的需求,比如把一个一维数组按位置拆分成几个部分分别分析 。 - 数组重塑:除了
reshape,还可在创建随机数数组后改变其形状,如先生成 3 行 2 列的随机数数组(元素值在 1 - 10 之间 ),再通过reshape转成 2 行 3 列的数组,灵活调整数组结构以适配不同算法输入要求。
三、NumPy 字符数组操作
(一)字符基本操作
- 字符连接:
np.char.add函数可实现字符数组元素的连接,无论是单个字符串的拼接,还是多个字符串数组对应元素的连接都能完成,像把['hello']和[' sunjingyue']连接成新字符串,或者对多个字符串数组批量连接,方便构建复杂文本内容 。 - 字符替换:
np.char.replace可替换字符串中的指定子串,例如将句子中'some'替换成'many',用于文本数据的简单清洗和改写 。
(二)字符编码解码
np.char.encode 和 np.char.decode 用于处理字符的编码和解码。可将字符串按指定编码(如 cp500 )编码成字节形式,之后又能通过解码函数还原回原始字符串,在涉及不同编码格式的文本数据交互场景中很实用,确保文本数据在存储和传输过程中能正确转换和还原 。
四、NumPy 数学计算功能
(一)三角函数计算
对于角度数组,先通过乘以 np.pi/180 将角度转换为弧度(因为 NumPy 中三角函数默认基于弧度计算 ),再用 np.sin、np.cos、np.tan 分别计算正弦、余弦、正切值,可用于几何计算、信号处理等涉及三角函数的场景,比如分析周期性数据的变化规律 。
(二)数值舍入与取整
- 舍入操作:
np.around函数可对数组元素进行舍入,能指定保留的小数位数,还可对整数部分按十位、百位等进行舍入,灵活控制数值的精度,满足不同计算和展示需求,像财务数据的金额处理、科学计算结果的精度调整 。 - 取整操作:
np.floor(向下取整,取不大于该数的最大整数 )和np.ceil(向上取整,取不小于该数的最小整数 ),在数据分段、阈值处理等场景中常用,例如根据数值大小进行分类或者确定区间归属 。
(三)数组数学运算
支持数组间的加减乘除等基本运算,通过 np.add、np.subtract、np.multiply、np.divide 等函数实现,可对形状适配的数组进行对应元素的运算,像两个数组对应位置元素相加、相减等,是构建复杂数学模型和算法的基础,比如在矩阵运算、线性代数求解中频繁应用 。
五、总结
NumPy 库为 Python 科学计算提供了丰富且强大的功能,从数组的创建、变形、堆叠拆分,到字符数组操作,再到各类数学计算,涵盖了数据处理和分析的多个基础环节。掌握这些基础知识,能为后续深入学习机器学习、数据分析等领域筑牢根基,助力开发者更高效地处理和分析数据,挖掘数据背后的价值 。
13

被折叠的 条评论
为什么被折叠?



