當實際處理多維變量時,尤爲須要使用到Tensorflow這樣深度學習庫,好比,圖片數據批次其形狀爲:N×H×W×CN×H×W×C, 高維序列格式存在難以理解的問題。所以如何讀懂這些高維序列是一個很基礎的問題。
數據庫
>>>>c#
列表和1-D Numpy array
如何檢索一個列表中的元素,上圖給出了很好的描述
學習
嵌套列表和2-D Numpy序列
當嵌套兩個List事情就變得頗有趣了。2-D表示:矩陣、數據庫裏的表格、灰度圖像spa
上面是一個List裏面嵌套了三個List,每一個List都表示長方形表中的一個行向量
3d
在Python中訪問一個嵌套列表,一般使用兩個方括號,具體以下:
code
下面是一些小例子:
圖片
咱們將嵌套結構看作一棵樹
get
2-D numpy arrays
V=np.array([[1, 0, 0],[0,1, 0],[0,0,1]])
1深度學習
2-D Numpy arrays 的加法運算數學
X=np.array([[1,0],[0,1]]) Y=np.array([[2,1][1,2]]) Z=X+Y; Z:array([[3,1],[1,3]])
1
2
3
4
2-D Numpy arrays 的乘法運算
X=np.array([[1,0],[0,1]]) Y=np.array([[2,1][1,2]]) Z=X*Y; Z:array([[2,0],[2,0]])
1
2
3
4
嵌套三個列表和3-DNumpys arrays
能夠看到相比於2-D列表,3-DNumpys arrays增長了一個方括號
咱們能夠這樣檢索其中一個元素。
爲了生活化場景,基本的二維表格形狀不變,而增長了相應的多個表格,相似於地址- 樓層- 房間號的表達方式
而檢索過程也相似於這樣過程
nDNumpy序列的加法表達是這樣:
4DNumpy
思考一下:
1. 如何表達以下矩陣Tensor?
1×2×2×11×2×2×1
3×3×1×13×3×1×1
3×3×2×13×3×2×1
3×3×2×23×3×2×2
給出答案:
[[[[1],[1]], [[1],[1]]]] [[[[1]],[[1]],[[1]]], [[[1]],[[1]],[[1]]], [[[1]],[[1]],[[1]]]] [[[[1],[1]],[[1],[1]],[[1],[1]]], [[[1],[1]],[[1],[1]],[[1],[1]]], [[[1],[1]],[[1],[1]],[[1],[1]]]] [[[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]], [[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]], [[[1,1],[1,1]],[[1,1],[1,1]],[[1,1],[1,1]]]]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在原文章中,表達較爲清晰,適合新手入門。
Reference:From Python Nested Lists to Multidimensional numpy Arrays
—THE END—
編輯 ∑Gemini
來源:CSDN@Nianzu_Ethan_Zheng
文章推薦