2014-04-02 63 views
0

之间有什么差别以下两个(为什么在第一种情况下丢失的尺寸):在numpy的阵列缺失尺寸形状

zeros((3,)).shape 
Out[67]: (3,) 

zeros((3,1)).shape 
Out[68]: (3, 1) 
+1

也许[这](https://stackoverflow.com/questions/22737000)回答您的问题 –

回答

4

数组的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