Сохранение dict с помощью np.savez дает неожиданный результат?

Могу ли я сохранить словарь, используя np.savez? Результаты удивительны (по крайней мере для меня), и я не могу найти способ вернуть мои данные по ключу.

In [1]: a = {'0': {'A': array([1,2,3]), 'B': array([4,5,6])}}
In [2]: a
Out[2]: {'0': {'A': array([1, 2, 3]), 'B': array([4, 5, 6])}}

In [3]: np.savez('model.npz', **a)
In [4]: a = np.load('model.npz')
In [5]: a
Out[5]: <numpy.lib.npyio.NpzFile at 0x7fc9f8acaad0>

In [6]: a['0']
Out[6]: array({'B': array([4, 5, 6]), 'A': array([1, 2, 3])}, dtype=object)

In [7]: a['0']['B']
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-16-c916b98771c9> in <module>()
----> 1 a['0']['B']

ValueError: field named B not found

In [8]: dict(a['0'])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-d06b11e8a048> in <module>()
----> 1 dict(a['0'])

TypeError: iteration over a 0-d array

Я не совсем понимаю, что происходит. Кажется, что мои данные превращаются в словарь внутри 0-мерного массива, и я не могу вернуть данные по ключу. Или я что-то упустил?

Итак, мои вопросы:

Что здесь происходит? Если я все еще могу получить доступ к своим данным по ключу, как?Каков наилучший способ хранения данных этого типа? (dict с str в качестве ключа и другие dicts в качестве значения)

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос