numpy数组维度缺失
这段话在问下面这两个东西有什么区别(为什么第一个没有维度信息):
zeros((3,)).shape
Out[67]: (3,)
zeros((3,1)).shape
Out[68]: (3, 1)
1 个回答
10
数组的 shape
是它的维度组成的一个元组。一个一维的数组形状是 (n,),而一个二维的数组形状是 (n,m),三维的数组形状是 (n,m,k),依此类推。
当你把形状从 (3,)
改成 (3,1)
时,你就是在把一维数组变成二维数组。
你可以通过这种方式不断添加维度(你可以使用 .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