消除轴

时间:2014-03-01 20:11:14

标签: python numpy

我在numpy中理解Axis消除的概念时遇到了麻烦。假设我有以下2D矩阵:

A = 

1 2 3

3 4 5

6 7 8

好的我明白sum(A,axis = 0)会将每列相加并给出一个包含3个元素的1D数组。我也明白总和(A,轴= 1)将对每一行求和。

但我的麻烦是当我读到轴= 0时消除了第0轴而轴= 1消除了第1轴。有时人们提到“减少”而不是“消除”。我无法理解这会消除什么。例如,sum(A,axis = 0)将从上到下对每列进行求和,但我在这里看不到消除或减少。重点是什么?对于和(A,轴= 1)也是如此。

如何获得更高的尺寸?

P.S。我总是在矩阵尺寸和数组尺寸之间混淆。我希望编写numpy文档的人能够非常清楚地区分这一点。

1 个答案:

答案 0 :(得分: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

Matrix是数组的子类 http://docs.scipy.org/doc/numpy/reference/arrays.classes.html

  

Matrix对象始终是二维的

numpy Matrix的历史很老,但基本上它的意思是类似于MATLAB矩阵对象。在原始的MATLAB中,几乎所有东西都是矩阵,总是2d。后来他们推广它以允许更多维度。但它的尺寸不能减少。 MATLAB确实有'向量',但它们只是一维为1的矩阵(行向量与列向量)。

'轴消除'在使用numpy时,这不是一个常用术语。可以想象,它可以指减少阵列维数的几种方法中的任何一种。与sum()一样,减少就是一个。索引是另一个:a[:,0,:]。重塑也可以改变维度的数量。 np.squeeze是另一个。