numpy库学习(持续更新)
numpy库学习(持续更新
array多维数组概念
定义
多维数组是一种包含多个维度的数据集合,每个维度可以看作是一个方向,类似于数学中的坐标轴。一维数组可以想象成一条直线上的点的集合,二维数组类似一个平面上的网格,三维数组则像是一个立体空间中的立方体网格,以此类推,可以有更高维度的数组。
特点
- 同质性:多维数组中的所有元素必须是相同的数据类型,例如
int、float等。这使得 NumPy 数组在内存中存储更高效,也方便进行统一的数值计算。 - 固定大小:数组创建后,其形状(即各维度的大小)通常是固定的,不像 Python 列表可以动态改变大小。
创建方式
使用 np.array() 函数
1 | import numpy as np |
使用其他函数创建特殊数组
1 | # 创建全零二维数组,形状为 (2, 3) |
维度与形状
- 维度(ndim):表示数组的维数,即数组有多少个方向。例如,一维数组的维度是 1,二维数组的维度是 2,以此类推。可以使用数组的
ndim属性获取维度信息。
1 | import numpy as np |
详细概念(有关维度):
示例 1:创建一维数组,指定
ndmin=1(默认情况,可不写)1
2
3
4
5
6import numpy as np
data = [1, 2, 3]
arr1 = np.array(data, ndmin=1)
print(arr1)
print(arr1.ndim) # 输出数组的维度在这个例子中,
data本身是一个列表,是一维的数据结构。使用np.array()创建数组时,即使不指定ndmin=1,默认也是创建一维数组。输出结果如下:1
2[1 2 3]
1示例 2:创建二维数组,指定
ndmin=21
2
3
4
5
6import numpy as np
data = [1, 2, 3]
arr2 = np.array(data, ndmin=2)
print(arr2)
print(arr2.ndim)这里
data还是一维的列表,但通过设置ndmin=2,NumPy 会在前面添加一个维度,将其转换为二维数组。输出结果为:1
2[[1 2 3]]
2可以看到,原本的一维列表被包装成了一个只有一行的二维数组。
示例 3:创建三维数组,指定
ndmin=31
2
3
4
5
6import numpy as np
data = [1, 2, 3]
arr3 = np.array(data, ndmin=3)
print(arr3)
print(arr3.ndim)此时
data依旧是一维列表,由于ndmin=3,NumPy 会添加两个维度,生成一个三维数组。输出如下:1
2[[[1 2 3]]]
3它变成了一个只有一个 “切片” 的三维数组。
示例 4:已有高维数据,指定
ndmin小于其维度1
2
3
4
5
6import numpy as np
data = [[1, 2], [3, 4]] # 二维列表
arr4 = np.array(data, ndmin=1)
print(arr4)
print(arr4.ndim)这里
data是二维列表,虽然指定ndmin=1,但因为原始数据已经是二维,所以arr4还是二维数组,ndmin不会改变高于它指定值的维度。输出为:1
2
3[[1 2]
[3 4]]
2通过这些例子可以看出,
ndmin参数在需要确保生成的 NumPy 数组具有特定最小维度时非常有用,常用于数据预处理等场景
- 形状(shape):表示数组在每个维度上的大小,是一个元组。例如,二维数组
[[1, 2, 3], [4, 5, 6]]的形状是(2, 3),表示有 2 行 3 列。可以使用数组的shape属性获取形状信息。
1 | import numpy as np |
索引与切片
多维数组的索引和切片操作与一维数组类似,但需要考虑多个维度
1 | import numpy as np |
应用场景
多维数组在数据分析、机器学习、图像处理等领域有广泛应用。例如,在图像处理中,一张彩色图像可以用三维数组表示,其中前两个维度表示图像的高度和宽度,第三个维度表示颜色通道(如红、绿、蓝)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dedsec的博客!



