NumPy 轴(axis)的概念

NumPy 数组的维数(dimensions)

NumPy 数组的维数(dimensions),一维数组的秩为 1,二维数组的秩为 2,以此类推。在numpy中用array.ndim查看。

NumPy 数组的轴(axis)

在 NumPy中,有个概念叫轴(axis),轴的个数等于数组的维数。设axis=i,则Numpy沿着第i个下标变化的方向进行操作。
之所以叫轴,我是这么理解的,以这个2维矩阵为例:

array=np.arange(1,10,1).reshape((3,3))
[[1 2 3]
 [4 5 6]
 [7 8 9]]

可以想象数组的每一个元素是存在以下小方框中,可以通过在x轴(axis=0)上的坐标和在y轴(axis=1)上的坐标来确定它们的位置。
在这里插入图片描述
如果还不懂可以通过下面的例子进行理解:

轴(axis)的使用案例

对于以下NumPy数组:

array = np.random.randint(0, 3, [3,2,4,5])
[[[[0 1 1 2 2]
   [0 0 2 0 2]
   [2 1 1 0 0]
   [1 1 2 1 0]]

  [[1 2 0 2 0]
   [2 0 1 1 2]
   [0 2 2 0 2]
   [1 2 2 0 0]]]


 [[[0 1 0 1 2]
   [0 1 0 0 1]
   [0 1 1 0 1]
   [2 2 0 1 2]]

  [[2 2 1 2 1]
   [1 1 1 2 2]
   [2 2 1 2 0]
   [0 0 1 2 1]]]


 [[[1 2 1 2 0]
   [1 1 1 1 0]
   [1 0 2 1 1]
   [0 0 2 1 0]]

  [[1 0 2 2 0]
   [2 0 0 1 1]
   [0 1 1 1 2]
   [0 2 1 2 0]]]]

它的维数为4,它的shape为[3,2,4,5]
如果我们要提取出数组中的某个位置的数,我们可以通过下面的语法来得到:

方括号中指定元素坐标的变量我们可以将其看为这个数组的下标 a r r a y 1 , 1 , 1 , 1 array_{1,1,1,1} array1,1,1,1,对于这个数组,他有4个轴,从左至右依次为axis=0轴、axis=1轴、axis=2轴、axis=3轴。

对参数为axis=2进行sum操作:

np.sum(array,axis=2)

会得到以下结果:

[[[6 3 4 3 4]
  [5 3 4 4 2]]

 [[8 6 3 2 2]
  [4 6 5 4 5]]

 [[4 6 2 4 4]
  [3 1 3 4 2]]]

这对每一个 a r r a y x , y , i , z , i = 0 , 1 , 2 , 3 array_{x,y,i,z},i=0,1,2,3 arrayx,y,i,z,i=0,1,2,3进行了求和,这个结果的shape为(3, 2,4, 5)即(3, 2, 5)。

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值