ndarray может использоваться для представления иерархических древовидных данных, где каждая ось представляет уровень в иерархии. Если дерево не симметрично c, например -
- A имеет двух детей B и C
- B имеет двух детей D и E
- E имеет одного потомка F
результирующий ndarray (Z) будет иметь форму (1, 2, 2, 1), где первые оси представляют верхний уровень (A), вторые оси представляют второй уровень (B и C), et c.
Следовательно -
- A представлен
Z[0]
- B представлен
Z[0, 0]
- C представлен
Z[0, 1]
- D представлен
Z[0, 0, 0]
- E представлен
Z[0, 0, 1]
- F представляется как
Z[0, 0, 1, 0]
Однако этот массив выделяет элементы для несуществующих дочерних элементов Z[0, 1, :, :]
и Z[0, 0, 0, :]
. Если дерево было очень глубоким и несбалансированным, большинство элементов могли бы представлять этих несуществующих потомков
Есть ли лучший способ для моделирования этих случаев?