前言
對於學習NumPy(Numeric Python),首先需要知道一點是:Numpy 是用來處理矩陣數組的。因此,知道一個數組是多少維度是很有必要的。
shape 屬性
對於shape函數,官方文檔是這么說明:
the dimensions of the array. This is a tuple of integers indicating the size of the array in each dimension.
直譯:數組的維度。這是一個整數的元組,元組中的每一個元素對應着每一維度的大小(size)。
再直譯一點理解就是,若元組只有一個元素,則說明這個數組是一維數組:如元組(2,) 表示一維數組,只含有2個元素;同理,可知(1,3)表示的是一個2維數組,因為含有2個元素 :1,3
舉例說明:
一維數組
import numpy as np
a = np.array([1,2,3])
print(a.shape) # 輸出 (3,)
說明:這里輸出的元組(3,)按官方的文檔理解,這里的3表示的是第一個維度中元素的大小(size);
同理,對於二維數組myarray,可推測出myarray.shape輸出的應該類似(n,m)只含有兩個元素的元組。
其中,第一個元素n代表中一維數組中元素的個數;m代表第二維度中元素的個數。
b = np.array([[1,2,3],[3,4,5]])
print(b.shape) # 輸出(2,3)
元組(2,3) 說明這是一個二維數組,其中第一個維度含有2個元素,第二個維度中每一個元素都含有3個元素(1,2,3).
總結
通過以上的例子,我們可以知道對於numpy中數組的shape屬性輸出的元組,有以下兩個結論:
- 元組的元素的個數等於維度數
- 元組中每一個元素又代表中每一維度元素的個數(從左到右,依次為第一維度中元素的個數,第二維度中元素的個數...第n維度元素的個數)
如,若某一個numpy數組test_array 調用shape輸出為(2,3,3,4) 我們根據上面的結論,就可以很快的知道這是一個4維的數組。
其中,第一個維度只有2個元素。第二個維度有3個元素,第三個維度也有3個元素,最后的第四個維度有4個元素。
最后的最后
對於numpy中的數組,若是不知道他是幾維的,我們可以輸出他的shape屬性,然后,數一下有幾個元素就很easy 知道數組是幾維數組啦。