NumPy 數組的維數(dimensions)
NumPy 數組的維數(dimensions)
,一維數組的秩爲 1,二維數組的秩爲 2,以此類推。在numpy中用array.ndim
查看。
NumPy 數組的軸(axis)
在 NumPy中,有個概念叫軸(axis)
,軸的個數等於數組的維數。設axis=i
,則Numpy沿着第i
個下標變化的方向進行操作。
之所以叫軸,我是這麼理解的,以這個2維矩陣爲例:
array=np.arange(1,10,1).reshape((3,3))
[[1 2 3]
[4 5 6]
[7 8 9]]
可以想象數組的每一個元素是存在以下小方框中,可以通過在x軸(axis=0)上的座標和在y軸(axis=1)上的座標來確定它們的位置。
如果還不懂可以通過下面的例子進行理解:
軸(axis)的使用案例
對於以下NumPy數組:
array = np.random.randint(0, 3, [3,2,4,5])
[[[[0 1 1 2 2]
[0 0 2 0 2]
[2 1 1 0 0]
[1 1 2 1 0]]
[[1 2 0 2 0]
[2 0 1 1 2]
[0 2 2 0 2]
[1 2 2 0 0]]]
[[[0 1 0 1 2]
[0 1 0 0 1]
[0 1 1 0 1]
[2 2 0 1 2]]
[[2 2 1 2 1]
[1 1 1 2 2]
[2 2 1 2 0]
[0 0 1 2 1]]]
[[[1 2 1 2 0]
[1 1 1 1 0]
[1 0 2 1 1]
[0 0 2 1 0]]
[[1 0 2 2 0]
[2 0 0 1 1]
[0 1 1 1 2]
[0 2 1 2 0]]]]
它的維數爲4
,它的shape爲[3,2,4,5]
。
如果我們要提取出數組中的某個位置的數,我們可以通過下面的語法來得到:
方括號中指定元素座標的變量我們可以將其看爲這個數組的下標,對於這個數組,他有4個軸,從左至右依次爲axis=0
軸、axis=1
軸、axis=2
軸、axis=3
軸。
對參數爲axis=2
進行sum
操作:
np.sum(array,axis=2)
會得到以下結果:
[[[6 3 4 3 4]
[5 3 4 4 2]]
[[8 6 3 2 2]
[4 6 5 4 5]]
[[4 6 2 4 4]
[3 1 3 4 2]]]
這對每一個進行了求和,這個結果的shape
爲(3, 2,4, 5)即(3, 2, 5)。