矩阵多维度求和

import numpy as np
x=np.arange(48).reshape(6,8)
x.sum(axis=1)
x.sum(axis=0)
通常遇到的都是二维矩阵在一个维度上进行求和
看下面这个例子:
x=np.arange(48).reshape(2,2,3,4)
x.sum(axis=(0,2,3))
在三个维度上面求和,得到的结果应该是什么?

前言:

四维矩阵各位置代表的含义:

(批量大小,通道,高,宽),批量大小可以理解为样本的多少

x的形状应该是这个样子的:

矩阵多维度求和_第1张图片

使用图形表示可以更好的理解:

矩阵多维度求和_第2张图片矩阵多维度求和_第3张图片

回归正题:

x=np.arange(48).reshape(2,2,3,4)
x.sum(axis=(0,2,3))

我们可以这样理解:
①先看2和3,把它理解为二维矩阵的0和1,每一个3×4矩阵分别按行和列求和

先按行:

矩阵多维度求和_第4张图片

再按列:

矩阵多维度求和_第5张图片

②0相当于在批量大小维度进行相加,即把(1)(2)进行相加(横向)

矩阵多维度求和_第6张图片

最后得到的结果是

图片

思考:

如果x.sum(axis=(1,2,3))得到的结果应该是什么?

①还是把2和3理解为二维矩阵的0和1,这一步没有变化
②1也就是在通道维度进行相加,即①②方向

结果为:图片



由此我们也可以得出一个结论:

axis=(),这里面缺少哪个数字最后得到的结果就是几维向量

例如x.sum(axis=(0,1,2)),缺少3,那么最后得到的结果就是一个3维向量

你可能感兴趣的:(Python,python,矩阵,numpy)