如何根据'[]'判断数据的维度

>>> import numpy as np
>>> data = np.random.randint(0, 5, [4,3,2,3])
>>> data
array([[[[4, 1, 0],
         [4, 3, 0]],
        [[1, 2, 4],
         [2, 2, 3]],
        [[4, 3, 3],
         [4, 2, 3]]],

       [[[4, 0, 1],
         [1, 1, 1]],
        [[0, 1, 0],
         [0, 4, 1]],
        [[1, 3, 0],
         [0, 3, 0]]],

       [[[3, 3, 4],
         [0, 1, 0]],
        [[1, 2, 3],
         [4, 0, 4]],
        [[1, 4, 1],
         [1, 3, 2]]],

       [[[0, 1, 1],
         [2, 4, 3]],
        [[4, 1, 4],
         [1, 4, 1]],
        [[0, 1, 0],
         [2, 4, 3]]]])
>>>data.shape
>>> (4,3,2,3)

如上面的四维数组,我们可以感觉中括号的多少来判断数组的每个维度的层数。

首先可以看到每个维度的层数为(4,3,2,3)

第一层为4,因为最外层的3个中括号重复了4次

第二层为3,因为最外层的包含的中括号,即两个中括号,在一个3个中括号内重复了3次。例如

       [[[4, 1, 0],
         [4, 3, 0]],
        [[1, 2, 4],
         [2, 2, 3]],
        [[4, 3, 3],
         [4, 2, 3]]]

第三层为2,因为在第二层的中括号包含的中括号重复了两次。例如

[[4, 1, 0],
        [4, 3, 0]],

第四层,即最后一层为3,因为最后一层的中括号包含了3个数字。

猜你喜欢

转载自blog.csdn.net/weixin_40244676/article/details/102976815