numpy中数组维度的理解

参考
这篇文章主要是为了弄清楚数组按每个维度进行计算时,具体的操作是什么样的。

一、数组中的各个维度表示的是什么?

为了便于理解,用单位体表示,剥去一层中括号后,得到的数据。

1. 以二维数组为例

import numpy as np
np.random.seed(0)
arr2 = np.random.randint(0,9,size=(4,3))
print(arr2)
[[5 0 3]
 [3 7 3]
 [5 2 4]
 [7 6 8]]

这个二维数组,总共有两层中括号。在剥去最外层的中括号后,是4个长度为3的一维数组:[5 0 3],[3 7 3],[5 2 4],[7 6 8]。拿任意一个单位体举例,如[5 0 3],剥去中括号,是3个单位体5,0,3.

2. 以3维数组举例

arr2 = np.random.randint(0,9,size=(2,4,3))
[[[5 0 3]
  [3 7 3]
  [5 2 4]
  [7 6 8]]

 [[8 1 6]
  [7 7 8]
  [1 5 8]
  [4 3 0]]]

这个三维数组,总共有三层中括号。在剥去最外层的中括号后,是2个(4,3)的数组(绿色方框表示的):
在这里插入图片描述
后面就和二维数组的表示方法相同。
数组剥去最外层中括号后,得到的单位体的个数表示第0个维度(axis=0)的大小,次外层就是第二个维度(axis=1)的大小,以此类推。

二、数组中按维度计算

  1. 二维数组中按维度求和
arr.sum(axis=0)

数组是尺寸是(4,3),按第0个维度求和后,维度为(3,)
在这里插入图片描述

arr.sum(axis=1)

在这里插入图片描述

2. 3维数组按维度求和

2.3.1 axis=0

数组是尺寸是(2,4,3),按第0个维度求和后,维度为(4,3).两个(4,3)的矩阵,对应位置上的元素求和。
剥去最外层中括号后的单位体上对应元素求和
在这里插入图片描述

2.3.2 axis=1

过程:
数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。每个最外层单位体内的次外层单位体上相应位置的元素分别相加。
尺寸是(2,4,3)按axis=1相加后,得到的结果的尺寸是(2,3)
在这里插入图片描述

2.3.3 axis=2

依照上面的做法,axis=?就将中括号剥到第几层,然后对应位置上的元素相加。

过程:
数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。4个单位体再剥去最外层的中括号,得到3个次次单位体——标量。
在这里插入图片描述

axis = 2
print('*'*10,' axis = %a'%(axis),'*'*10)# 这种格式输出方式
print(arr.sum(axis=axis))

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值