2014-03-01 56 views
1

我在理解numpy中軸消除的概念時遇到了困難。假設我有以下2D矩陣:消除軸消除

A = 

1 2 3 

3 4 5 

6 7 8 

確定我明白,總和(A,軸= 0)將總結各列向下,並給一維數組具有三個元素。我也明白,sum(A,axis = 1)會對每一行進行求和。

但我的麻煩是,當我讀取軸= 0消除第0軸和軸= 1消除第1軸。也有人提到「減少」而不是「消除」。我無法理解這會消除什麼。例如sum(A,axis = 0)將從上到下對每列進行求和,但在這裏我沒有看到消除或減少。重點是什麼?對於和(A,軸= 1)也是如此。

以及它對於更高維度的效果如何?

p.s.我總是混淆矩陣尺寸和陣列尺寸。我希望那些寫下這些文件的人能夠很清楚地區分這種區別。

+1

你在哪裏遇到術語「消除」?你在哪裏遇到「減少」?你不得不更清楚你到底不明白什麼......諸如「有什麼意義?」等問題。不太可能會導致本網站的答案... – shx2

+0

@ shx2 http://stackoverflow.com/a/22115471/2464658 –

回答

0

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.reduce.html

由一個減小了的尺寸,由沿一個軸施加ufunc。

例如,add.reduce()等價於sum()。

numpy,所述基類是ndarray - 多維陣列(可以0D,1D,或更多個)

http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html

矩陣是陣列 http://docs.scipy.org/doc/numpy/reference/arrays.classes.html

的子類矩陣對象始終是二維的

numpy矩陣的歷史是舊的,但基本上它意味着類似於MATLAB矩陣對象。在原來的MATLAB中,幾乎所有東西都是矩陣,總是2d。後來他們將其推廣到允許更多維度。但它不能有更少的尺寸。 MATLAB確實有'向量',但它們只是一個維度爲1(行向量與列向量)的矩陣。

'軸消除'不是與numpy一起使用時的常見術語。可以想象,它可以引用減少數組維數的幾種方法中的任何一種。減少,如在sum(),是一個。索引是另一個:a[:,0,:]。改形也可以改變尺寸的數量。另一個是np.squeeze