以下两个之间有什么区别(为什么在第一种情况下缺少尺寸):
zeros((3,)).shape
Out[67]: (3,)
zeros((3,1)).shape
Out[68]: (3, 1)
答案 0 :(得分:6)
数组的shape
是其维度的元组。具有一个维度的数组具有(n,)的形状。二维数组的形状为(n,m),三维数组的形状为(n,m,k)等等。
当您从(3,)
更改为(3,1)
时,您将从1维更改为2维。
您可以继续以这种方式添加尺寸(您可以使用.ndim
检查数组的尺寸数量):
一个维度:
>>> a = np.zeros((2))
array([ 0., 0.])
>>> a.shape
(2,)
>>> a.ndim
1
两个维度:
>>> b = np.zeros((2,2))
array([[ 0., 0.],
[ 0., 0.]])
>>> b.shape
(2,2)
>>> b.ndim
2
三个维度:
>>> c = np.zeros((2,2,2))
array([[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]])
>>> c.shape
(2,2,2)
>>> c.ndim
3
四个维度:
>>> d = np.zeros((2,2,2,2))
array([[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]],
[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]]])
>>> d.shape
(2,2,2,2)
>>> d.ndim
4