numpy中数组维度的理解 | 您所在的位置:网站首页 › numpy的切片是什么意思 › 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)的数组(绿色方框表示的): 数组是尺寸是(4,3),按第0个维度求和后,维度为(3,) 数组是尺寸是(2,4,3),按第0个维度求和后,维度为(4,3).两个(4,3)的矩阵,对应位置上的元素求和。 剥去最外层中括号后的单位体上对应元素求和 过程: 数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。每个最外层单位体内的次外层单位体上相应位置的元素分别相加。 尺寸是(2,4,3)按axis=1相加后,得到的结果的尺寸是(2,3) 依照上面的做法,axis=?就将中括号剥到第几层,然后对应位置上的元素相加。 过程: 数组是尺寸是(2,4,3),剥去最外层的中括号,是两个单位体(4,3)——最外层单位体。两个单位体再剥去一层中括号,得到4个(3,)的数组——次外层单位体。4个单位体再剥去最外层的中括号,得到3个次次单位体——标量。 |
CopyRight 2018-2019 实验室设备网 版权所有 |