我们平时用的sum应该是默认的axis=0 就是普通的相加,而当加入axis=1以后就是将一个矩阵的每一行向量相加
axis=0, 表示列。
axis=1, 表示行。
对于向量:
>>> import numpy as np
>>> np.array([0, 2, 1])
array([0, 2, 1])
>>> b.sum()
3
>>> b.sum(axis=0)
3
>>> b.sum(axis=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program_software\Anaconda\lib\site-packages\numpy\core\_methods.py", line 32, in _sum
return umr_sum(a, axis, dtype, out, keepdims)
ValueError: 'axis' entry is out of bounds
>>>
可见对于向量来说只有0轴,没有1轴,即默认是列的存储形式,类似matlab里的向量形式
对于矩阵:
>>> a = np.array([[0, 2, 1]])
>>> a.sum()
3
>>> a.sum(axis=0)
array([0, 2, 1])
>>> a.sum(axis=1)
array([3])
>>>
对比可以看出向量和矩阵得到的结果不同
>>> c=array([[0, 2, 1], [3, 5, 6], [0, 1, 1]])
>>> c.sum(axis=1)
array([ 3, 14, 2])
>>> c.sum(axis=0)
array([3, 8, 8])
>>> c.sum()
19
对于矩阵axis=0, 表示列;axis=1, 表示行
sum()表示所有的矩阵元素之和
下图暂且称为矩阵的切片图吧。。