关于numpy中array的维度总结

本文详细解析了一维、二维及三维数组的结构特征,并介绍了如何通过中括号的层级来判断数组的具体维度,对于深入理解数组在神经网络等领域的应用具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

区分array的各个维度

array维度的解释

主要判断依据,根据中括号的组数成对的拆解区分各个维度

一维array
x=[1 2 3]
一组中括号,里面有三个元素,这个矩阵的维度只有一个,只有axis=0
x.shape=(2,)

二维array
y=[[1 2 3][4 5 6]]
两组中括号,把最外层解开,里面还有两个部分,每一个部分构成axis=0的部分,而继续拆解里层的中括号(任拆一个),发现每一个里面有3个元素,axis=1的部分有3个元素
y.shape=(2,3)

三维array

z=[[[1 2 3] [4 5 6]]
	[[3 4 5] [2 3 4]]]

有三组中括号,也是从外到内逐层拆解,依次可以得到axis=0,1,2对应的维度数

维度序号对应的数字
axis=02
axis=12
axis=23

因此可以得到z.shape=(2,2,3)

另外:axis=-1表示在该矩阵的最后一维度上进行变化

更高维度的区分方法也是如此,一般在神经网络的训练中会使用到高维的权重参数,输入数据的矩阵。

### NumPy 中的维度概念及操作方法 #### 数组维度的基础定义 在 NumPy 中,数组的维度被称为轴(axis),这是指数据排列的方向。对于一维数组而言,只有一个方向的数据分布;而对于多维数组,则存在多个方向上的数据分布[^1]。 #### 创建不同维度的数组 可以通过 `np.array()` 方法创建具有特定维度的数组。例如: ```python import numpy as np # 一维数组 (rank-1 array 或 vector) arr_1d = np.array([1, 2, 3]) print("一维数组:", arr_1d) # 二维数组 (rank-2 array 或 matrix) arr_2d = np.array([[1, 2], [3, 4]]) print("二维数组:\n", arr_2d) # 三维数组 (rank-3 array 或 tensor) arr_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print("三维数组:\n", arr_3d) ``` 通过上述代码可以看出,`ndim` 属性可以返回数组的维度数(即秩)。 #### 使用 axis 参数进行操作 当对数组执行某些函数时,比如求和、平均值等统计计算,常常会用到 `axis` 参数来指定沿着哪个维度进行操作。例如,在二维数组上沿不同的轴求和的结果如下所示: ```python array_2d = np.array([[1, 2], [3, 4]]) sum_axis0 = np.sum(array_2d, axis=0) # 对列求和 sum_axis1 = np.sum(array_2d, axis=1) # 对行求和 print("按列求和:", sum_axis0) print("按行求和:", sum_axis1) ``` 这里,`axis=0` 表示沿着第一个维度(垂直向下看作每一列)进行累加,而 `axis=1` 则表示沿着第二个维度(水平向右看作每行)进行累加。 #### 初始化固定数值填充的数组 除了手动输入外,还可以利用一些便捷的方法快速生成预设值填充的数组。如需创建一个全为相同元素构成的新数组可采用 `np.full(shape, fill_value)` 函数实现[^2]。 ```python filled_array = np.full((3, 3), 9) print(filled_array) ``` 这将输出一个大小为 `(3,3)` 的矩阵,其中所有位置都被填充值 `9`. #### 性能优势 相比纯 Python 实现的操作来说,NumPy 提供了更高效的方式去完成同样的任务,尤其是在涉及大规模数据集的时候表现尤为明显。这是因为其底层实现了高度优化过的 C 扩展模块[^3]。 #### 数据结构术语说明 值得注意的是,“vector”,“matrix” 和 “tensor”的称呼虽然常见于描述 Numpy 数组的不同形态,但实际上它们更多是从线性代数角度出发的概念表述形式而已[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值