NumPy 重要知识点总结
一、数组操作之连接数组
用于将多个同形状数组沿指定轴合并,核心函数包括:
concatenate () 函数
- 原型:
numpy.concatenate((a1, a2, ...), axis)
- 作用:沿指定轴连接多个同类型、同形状数组(默认 axis=0,垂直连接)。
- 示例:
2×2
数组a=[[0,1],[2,3]]
和b=[[4,5],[6,7]]
,沿 axis=0 连接后为4×2
数组[[0,1],[2,3],[4,5],[6,7]]
。 - 代码:
- 原型:
stack () 函数
- 原型:
numpy.stack(arrays, axis)
- 作用:沿新轴连接数组序列(会增加维度)。
- 示例:
2×2
数组a
和b
,沿 axis=0 堆叠后为2×2×2
三维数组[[[0,1],[2,3]], [[4,5],[6,7]]]
。 - 代码:
- 原型:
hstack () 函数
- 作用:水平堆叠数组(沿 axis=1,列方向)。
- 示例:
2×2
数组x=[[0,1],[2,3]]
和y=[[4,5],[6,7]]
,水平堆叠后为2×4
数组[[0,1,4,5],[2,3,6,7]]
。 - 代码:
vstack () 函数
- 作用:垂直堆叠数组(沿 axis=0,行方向)。
- 示例:
2×2
数组a
和b
,垂直堆叠后与concatenate(a,b, axis=0)
效果一致,为4×2
数组。 - 代码:
二、数组操作之分割数组
用于将数组沿指定轴拆分为子数组,核心函数包括:
split () 函数
- 原型:
numpy.split(ary, indices_or_sections, axis=0)
- 作用:沿指定轴分割数组为子数组。
- 参数:
indices_or_sections
:若为整数,平均切分;若为数组,指定切分位置(左开右闭);axis
:默认 0(横向切分),1 为纵向切分。
- 示例:
1×12
数组[0-11]
,split(x,3)
平均分为 3 个1×4
子数组;split(x,[2,5])
按位置 2 和 5 切分为[0-1]、[2-4]、[5-11]
。 - 代码:
- 原型:
hsplit () 函数
- 作用:水平分割数组(沿 axis=1,列方向)。
- 代码:
vsplit () 函数
- 作用:垂直分割数组(沿 axis=0,行方向)。
- 代码:
三、数组操作之元素添加与删除
用于调整数组元素数量或去重,核心函数包括:
resize () 函数
- 作用:修改数组形状,若新形状大于原数组,重复原数据填充;若小于,截断数据。
- 示例:
2×3
数组[[1,2,3],[4,5,6]]
调整为3×2
后为[[1,2],[3,4],[5,6]]
。 - 代码:
append () 函数
- 作用:向数组添加元素,默认展平数组;指定 axis 时沿该轴添加(需形状匹配)。
- 示例:
2×3
数组a
,append(a, [[7,8,9]], axis=0)
沿行添加后为3×3
数组。 - 代码:
insert () 函数
- 原型:
numpy.insert(arr, obj, values, axis)
- 作用:在指定索引前插入值,指定 axis 时沿该轴插入(值会广播匹配形状)。
- 代码:
- 原型:
delete () 函数
- 原型:
numpy.delete(arr, obj, axis)
- 作用:删除指定子数组,默认展平数组;指定 axis 时沿该轴删除。
- 代码:
- 原型:
unique () 函数
- 作用:去除数组重复元素,返回排序后的唯一值数组。
- 扩展参数:
return_counts=True
可返回各元素在原数组中的出现次数。 - 代码:
四、课堂练习