numpy数组形状缺少维度

Ale*_*mer 5 python numpy

以下两个之间有什么区别(为什么在第一种情况下缺少尺寸):

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

zeros((3,1)).shape
Out[68]: (3, 1)
Run Code Online (Sandbox Code Playgroud)

ato*_*3ls 7

所述shape阵列的是其尺寸的一个元组.具有一个维度的数组具有(n,)的形状.二维阵列的形状为(n,m),三维阵列的形状为(n,m,k)等.

当您从更改为1时(3,),(3,1)您将从1维更改为2维.

您可以通过这种方式继续添加尺寸(您可以使用以下方法检查数组的尺寸数量.ndim):

一个维度:

>>> a = np.zeros((2))
array([ 0.,  0.])
>>> a.shape
(2,)
>>> a.ndim
1
Run Code Online (Sandbox Code Playgroud)

两个维度:

>>> b = np.zeros((2,2))
array([[ 0.,  0.],
       [ 0.,  0.]])
>>> b.shape
(2,2)
>>> b.ndim
2
Run Code Online (Sandbox Code Playgroud)

三个维度:

>>> c = np.zeros((2,2,2))
array([[[ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.]]])
>>> c.shape
(2,2,2)
>>> c.ndim
3
Run Code Online (Sandbox Code Playgroud)

四个维度:

>>> 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
Run Code Online (Sandbox Code Playgroud)