>>> 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次元配列のように、角括弧の数を感じて、配列の各次元の層の数を決定できます。
まず、各次元のレイヤー数が(4、3、2、3)であることがわかります。
最も外側の3つの角かっこが4回繰り返されるため、最初のレベルは4です。
2番目のレベルは3です。これは、最も外側のレベルに含まれる角かっこ、つまり2つの角かっこが1つの3つの角かっこ内で3回繰り返されるためです。例えば
[ [[ 4、1、0]、
[4、3、0 ]、
[ 1、2、4]、
[2、2、3 ]、
[ 4、3、3]、
[4、2 、3 ]] ]]
2番目のレイヤーのブラケットに含まれるブラケットが2回繰り返されるため、3番目のレイヤーは2です。例えば
[ [ 4、1、0 ]、
[ 4、3、0 ] ]、
最後のレイヤーの角括弧には3つの数字が含まれているため、4番目の最後のレイヤーは3です。