numpy列相加_numpy.sum的使用

时间:2025-01-27 09:32:27

numpy的sum函数可接受的参数是:

sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)
  1. a:用于进行加法运算的数组形式的元素

2 .axis的取值有三种情况:,2.整数, 3.整数元组。(在默认/缺省的情况下,axis取None)

a = (1,20,20).reshape(4,5)
print(a)

输出:
[[ 1.  2.  3.  4.  5.]
 [ 6.  7.  8.  9. 10.]
 [11. 12. 13. 14. 15.]
 [16. 17. 18. 19. 20.]]

Example:

如果axis默认/缺失

(a)

即将数组/矩阵中的元素全部加起来,得到一个和:210

如果axis为整数,axis的取值不可大于数组/矩阵的维度,且axis的不同取值会产生不同的结果。

(a,axis = 0)

axis为0是压缩行,即将每一列的元素相加,将矩阵压缩为一行,输出:array([34., 38., 42., 46., 50.])

(a,axis = 1)

axis为1是压缩列,即将每一行的元素相加,将矩阵压缩为一列,输出:array([15., 40., 65., 90.])

当axis取负数的时候,对于二维矩阵,只能取-1和-2(不可超过矩阵的维度)。

当axis=-1时,相当于axis=1的效果,当axis=-2时,相当于axis=0的效果。

如果axis为整数元组(x,y),则是求出axis=x和axis=y情况下得到的和。

(a,axis = (0,1))

输出:210

3. dtype先将a转化后再相加

([0.5, 0.7, 1.2, 1.5], dtype=np.int32)

输出为2

([0.5, 0.7, 1.2, 1.5], dtype=np.float32)

输出为3.9

4. keepdims =True 将保持a的维度

a = (a,axis = 0)
print()
b = (a,axis = 0,keepdims = True)
print()

输出结果分布时:(5,)和(1, 5)。而a的为2维数组,没有使用keepdims 时有维度丢失的可能,在代码中可能出现bug.