Python NumPy多维阵列形状直观

Python NumPy多维阵列形状直观,python,arrays,numpy,Python,Arrays,Numpy,我是新来的。我很难理解如何看待多维数组,而只是“知道”它的形状。例如: # a 3D array (two stacked 2D arrays) c = np.array( [[[ 0, 1, 2], [ 10, 12, 13]], [[100,101,102], [110,112,113]]] ) c.shape # (2, 2, 3) 为了弄清楚我头脑中的形状,

我是新来的。我很难理解如何看待多维数组,而只是“知道”它的形状。例如:

# a 3D array (two stacked 2D arrays)
c = np.array( [[[  0,  1,  2],               
                [ 10, 12, 13]],
               [[100,101,102],
                [110,112,113]]] )
c.shape # (2, 2, 3)
为了弄清楚我头脑中的形状,我从最里面的实体(一个3元素数组)开始,然后向外工作(3元素数组中有2个)和2个矩阵,所以(2,2,3)


你就是这样做的吗?

把它想象成一个立方体或excel电子表格。工作表1有2行3列。工作表2也有2行3列。将它们挤压在一起,就会得到一个2x3x2的3d矩阵。

我通常是从后面开始的,所以如果
c.shape
(2,2,3)
我知道第一维有两个元素,第二维有2个,最后维有3个。我不经常发现自己只是看一个数组,嵌套的括号很难判断,对于大型数组(超过几十个元素),数据无论如何都不会全部显示在屏幕上。谢谢@user2699-这对我来说完全有意义。我使用的例子直接来自于官方的NumPy教程,所以没有太多的上下文。不客气。一个很好的读物是解释numpy如何为不同操作查看数组形状的广播规则:您向我们展示了一个嵌套列表。要预测结果形状,我必须计算“[”和元素。
print(c)
提供了更多有关缩进和空行的帮助。