关于Numpy数组中属性shape的理解

关于Numpy数组中属性shape的理解

概述:numpy数组都有着shape这一属性,怎么理解这一属性呢?看以下代码:

# 关于numpy中shape参数的深刻理解
p1 = np.array([1, 2, 3])
p2 = np.array([[1], [2]])
p3 = np.array([[[1, 2], [4, 7]], [[3, 5], [5, 4]], [[8, 7], [7, 7]]])
p4 = np.array([[[[1, 2]]], [[[4, 9]]], [[[2, 7]]]])


print(p1.shape) # 输出(3, )
print(p2.shape) # 输出(2, 1)
print(p3.shape) # 输出(3, 2, 2)
print(p4.shape) # 输出(3, 1, 1, 2)

分析如下:
第一个:(3, )代表p1为一维数组里面有3个元素;
第二个:(2, 1)表示p2一个二维数组,这个二维数组里包含着2个一维数组,而每个一维数组包含着1位元素;
第三个:(3, 2, 2)表示p3为三维数组,这个三维数组里包含着3个二维数组,每个二维数组里包含着2个一维数组,每个一维数组里又包含着2位元素;
第四个:(3, 1, 1, 2)表示p4为一个四维数组,这个四维数组包含着3个三维数组, 这个三维数组里又包含了1个二维数组,这个二维数组里包含着1个一维数组,这个一维数组只包含一个元素。

结论:numpy范围的shape值(x1, x2, …, xn)中,括号里的数字个数代表该数组的维数大小,而里面的具体元素从左到右依次是数组从外到内的维数。既:第一个x代表这个N维数组(假设有N个x)里有x1个N-1维数组,每个N-1维数组里有x2个N-2维数组,以此类推。

你可能感兴趣的:(numpy,机器学习,python)