(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 個電壓值)。