numpy多維數組理解


轉載https://blog.csdn.net/nianzu_ethan_zheng/article/details/79038212

Numpy高維數據的理解

當實際處理多維變量時,尤其需要使用到Tensorflow這樣深度學習庫,比如,圖片數據批次其形狀為: N × H × W × C , 高維序列格式存在難以理解的問題。因此如何讀懂這些高維序列是一個很基礎的問題。

列表和1-D Numpy array

這里寫圖片描述
如何檢索一個列表中的元素,上圖給出了很好的描述

嵌套列表和2-D Numpy序列

當嵌套兩個List事情就變得很有趣了。2-D表示:矩陣、數據庫里的表格、灰度圖像

這里寫圖片描述
上面是一個List里面嵌套了三個List,每個List都表示長方形表中的一個行向量

在Python中訪問一個嵌套列表,通常使用兩個方括號,具體如下:
這里寫圖片描述

下面是一些小例子:
這里寫圖片描述

我們將嵌套結構看做一棵樹
這里寫圖片描述

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 × 1
3 × 3 × 1 × 1
3 × 3 × 2 × 1
3 × 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM