在教程中对mxnet中的sum_轴感到困惑

在教程中对mxnet中的sum_轴感到困惑,mxnet,Mxnet,我正在阅读上的mxnet教程,对sum_轴函数的使用感到困惑,示例如下: >>> a = mx.nd.ones((2,3)) >>> c = mx.nd.sum_axis(a, axis=1) >>> c.asnumpy() array([ 3., 3.], dtype=float32) >>> c = mx.nd.sum_axis(a, axis=0) >>> c.asnumpy() a

我正在阅读上的mxnet教程,对sum_轴函数的使用感到困惑,示例如下:

>>> a = mx.nd.ones((2,3))
>>> c = mx.nd.sum_axis(a, axis=1)
>>> c.asnumpy()
    array([ 3.,  3.], dtype=float32)
>>> c = mx.nd.sum_axis(a, axis=0)
>>> c.asnumpy()
    array([ 2.,  2.,  2.], dtype=float32)
我想知道的是,当parameter axis的值为1时,我认为它应该输出

array([ 2.,  2.,  2.], dtype=float32)
但不是

array([ 3.,  3.], dtype=float32)
当parameter axis的值为1时,我认为sum_轴应该沿列计算sum,但结果显示它沿行计算sum

看起来numpy也是这样计算的,我真的不明白为什么会这样。 那么有人能解释这个吗


谢谢

Numpy描述了二维数组中的轴。二维数组有两个对应的轴:第一个轴垂直向下穿过行轴0,第二个轴水平穿过列轴1

例如,检查链接 MXNet也是如此。因此,在您上面提到的示例中: a=[[1,1,1.], [1,1,1.]]


轴0表示垂直向下。因此,它将给出输出[2,2,2],轴1表示水平穿过列。因此,它将为您提供输出[3,3.]

谢谢!这就是我想要的。但我仍然有一个问题,如果有两个以上的轴怎么办。我认为这个可视化表示和切片示例将帮助您更详细地理解它。