Python的數(shù)組(array)是一個(gè)數(shù)據(jù)結(jié)構(gòu),在其中可以存儲(chǔ)多個(gè)數(shù)值,之后可以按照需要進(jìn)行訪問和修改。數(shù)組的軸是指對(duì)于多維數(shù)組而言,每個(gè)維度(dimension)所對(duì)應(yīng)的方向。Python的數(shù)組可以使用NumPy庫,其中軸的概念十分重要。
在NumPy中,數(shù)組可以是任意維度的,從1維到n維都可以。數(shù)組的軸從0開始編號(hào),因此,對(duì)于一個(gè)n維數(shù)組而言,軸的編號(hào)范圍是從0到n-1。在數(shù)組中,每個(gè)軸的長度可以不同,因此可以創(chuàng)建各種不同形狀的數(shù)組。
對(duì)于具有多個(gè)軸的數(shù)組而言,可以通過指定軸來進(jìn)行操作。例如,可以使用sum函數(shù)對(duì)數(shù)組的某個(gè)軸進(jìn)行求和。下面的代碼演示了如何對(duì)一個(gè)具有4個(gè)軸的數(shù)組的第0個(gè)軸進(jìn)行求和:
import numpy as np arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]]) result = np.sum(arr, axis=0) print(result)
在這個(gè)例子中,np.sum函數(shù)中指定了axis參數(shù)為0,因此對(duì)數(shù)組的第0個(gè)軸求和。數(shù)組arr的形狀是(2, 3, 2),這表示有2個(gè)元素,每個(gè)元素中有3個(gè)子元素,每個(gè)子元素中有2個(gè)數(shù)值。對(duì)第0個(gè)軸求和,就是將這兩個(gè)元素的對(duì)應(yīng)位置的子數(shù)組相加。在這個(gè)例子中,第0個(gè)軸求和后的結(jié)果是一個(gè)形狀為(3, 2)的數(shù)組。
可以將軸編號(hào)負(fù)數(shù),從而表示從數(shù)組的末尾開始計(jì)數(shù)。例如,可以將第0個(gè)軸改寫為-3,因此對(duì)于這個(gè)例子而言,對(duì)第0個(gè)軸求和的代碼可以寫成:
result = np.sum(arr, axis=-3)
這和上面的代碼是等效的。使用負(fù)數(shù)的優(yōu)勢(shì)是可以更自由地改變軸的編號(hào),從而使得代碼更加清晰易懂。