在使用numpy的时候,查询np.array的形状是一个容易产生困惑的点,这里进行着重说明。
一维数组因为只有一维,所以形式是(n, ),n表达的实际上是“行数”;而二维数组则是(m, n),m代表数组有多少行,n代表数组有多少列, 可见在新增加了维度之后,表达维度的数量会出现在这个tuple的最前面。依次类推,如果是三维数组则是(k, m, n)k表示的是有多少个二维数组的“块”。
而有趣的是,如果在三维数组中,出现在两个“块”中的二维数组并非是相同的shape,那么.shape展示出来的则只有(k, )
快速判断一个numpy array是多少维的方法可以直接数左括号的个数,一维是一个…以此类推
a = np.array([1,2])
b = np.array([[1,2],
[2,3],
[2,3]])
c = np.array([[[1,2],
[2,3],
[3,4]],
[[1,2],
[2,3],
[3,4]]
])
a.shape
(2, )
b.shape
(3, 2)
c.shape
(2, 3, 2)
c = np.array([[[1,2],
[2,3],
[3,4]],
[[1,2],
[2,3],
[3,4],
[3,4]]
])
c.shape
(2,)