Python Numpy多维数组.sum(axis=0/1/2...) 详解

Python Numpy多维数组.sum(axis=0/1/2…) 详解

numpy中axis取值的说明

首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维数越高,则axis可取的值越大,数组n维时,axis=0,1,…,n。为了方便下面的理解,我们这样看待:在numpy中数组都有着[]标记,则axis=0对应着最外层的[ ]axis=1对应第二外层的[ ],以此类推,axis=n对应第n外层的[ ]

下面是一个典型三维数组的例子:

因为opencv中的图片是三维数组,三维数组具有代表性,所以选取三维数组为例子。

import numpy as np
#0-27,步长为1 的整数
n = np.arange(0, 27, 1)
# 生成3行3列3层的矩阵
n = n.reshape(3,3,3)
#最外层求和
a = n.sum(axis=0)
#中间层求和
b = n.sum(axis=1)
#最内层求和
c = n.sum(axis=2)

axis=0求和过程展示:

  n: [[[ 0  1  2][ 3  4  5][ 6  7  8]]
            +         +         +
      [[ 9 10 11][12 13 14][15 16 17]]
            +         +         +
      [[18 19 20][21 22 23][24 25 26]]]
            =         =         =
  a:  [[27 30 33][36 39 42][45 48 51]]

axis=1求和过程展示:

  n: [[[ 0  1  2] + [ 3  4  5] + [ 6  7  8]]
      [[ 9 10 11] + [12 13 14] + [15 16 17]]
      [[18 19 20] + [21 22 23] + [24 25 26]]]
  b: [[ 9 12 15]
      [36 39 42]
      [63 66 69]]

axis=2求和过程展示:

  n: [[[ 0 + 1 + 2] + [ 3 + 4 + 5] + [ 6 + 7 + 8]]
      [[ 9 +10 +11] + [12 +13 +14] + [15 +16 +17]]
      [[18 +19 +20] + [21 +22 +23] + [24 +25 +26]]]
  c:  [[     3             12             21    ]
       [    30             39             48    ]
       [    57             66             75    ]]
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页