(2, 2, 3)
形状的 3D 数组(或张量)的结构。
个人理解:
2个2维数组(张量),2维数组(张量)里面有2个1维向量(张量),1维向量(张量)里面有3个元素。
注:由于最后一个维度值3代表的是元素个数,左侧括号后的第1个2代表的是第n-1个[
(中括号,即n-1维数组)的数量, 左侧括号后的第2个2代表的是第n-2个[
(中括号,即n-2维数组)的数量。这段文字中,n代表的是数组的维度,这里是3维。
维度解析:
(2, 2, 3)
表示:- 第1维(最外层):
2
个样本(或批次)。 - 第2维(中间层):每个样本有
2
个时间步(或行)。 - 第3维(最内层):每个时间步有
3
个电压值(或列)。
- 第1维(最外层):
可视化:
[# 样本1 (第1个2x3矩阵)[[12.5, 12.3, 12.4], # 时间步1(第1个1x3向量)[12.6, 12.2, 12.5] # 时间步2(第2个1x3向量)],# 样本2 (第2个2x3矩阵)[[12.4, 12.1, 12.3], # 时间步1(第1个1x3向量)[12.3, 12.0, 12.2] # 时间步2(第2个1x3向量)]
]
更直观的理解:
(2, 2, 3)
可以看作:- 2 个样本(比如 2 个电池的电压记录)。
- 每个样本有 2 个时间步(比如 2 个时间点的测量)。
- 每个时间步有 3 个电压值(比如 3 个传感器的读数)。
索引示例:
import numpy as npdata = np.array([[[12.5, 12.3, 12.4],[12.6, 12.2, 12.5]],[[12.4, 12.1, 12.3],[12.3, 12.0, 12.2]]
])print(data.shape) # (2, 2, 3)# 访问第1个样本的第2个时间步的第3个电压值
print(data[0, 1, 2]) # 12.5# 访问第2个样本的所有时间步的第1个电压值
print(data[1, :, 0]) # [12.4, 12.3]
总结:
(2, 2, 3)
不是2个2维向量
,而是2个2x3矩阵
(每个矩阵代表一个样本)。- 每个样本 是
(2, 3)
矩阵(2 时间步 × 3 电压值)。 - 每个时间步 是
(3,)
向量(3 个电压值)。