Как сохранить словарь массивов в файл в Numpy

У меня есть бит массивов

{1:array([...]), 2:array([...]), 3:array([...])} 

Я хотел бы сохранить его в файл и загрузить его позже.

Я обнаружил, что у numpy есть список методов ввода и вывода , но, похоже, они имеют дело только с массивами.

Благодарю.

2 Solutions collect form web for “Как сохранить словарь массивов в файл в Numpy”

На самом деле вы можете использовать встроенную библиотеку pickle для сериализации и десериализации объектов без использования numpy.

Вот макет кода

 import pickle data1 = {'a': [1, 2.0, 3, 4 + 6j], 'b': ('string', u'Unicode string'), 'c': None} print data1, type(data1) with open('data.pkl', 'wb') as output: # Pickle dictionary using protocol 0. pickle.dump(data1, output) # load data from pkl file with open("data.pkl", "rb") as fp: loaded_data1 = pickle.load(fp) print loaded_data1, type(loaded_data1) 

Результаты

 Before: {'a': [1, 2.0, 3, (4+6j)], 'c': None, 'b': ('string', u'Unicode string')} <type 'dict'> After: {'a': [1, 2.0, 3, (4+6j)], 'c': None, 'b': ('string', u'Unicode string')} <type 'dict'> 

Надеюсь, поможет.

Следующий скрипт сохранит диск из массива numpy на диск и затем загрузит его обратно в память.

 import numpy as np arr1 = np.arange(0, 10, 1) arr2 = np.arange(10, 20, 1) arr3 = np.arange(20, 30, 1) dct = {'1': arr1, '2': arr2, '3':arr3} outfile = 'dict_of_arrays.npz' np.savez(outfile, **dct) npzfile = np.load(outfile) print('npzfile.files: {}'.format(npzfile.files)) print('npzfile["1"]: {}'.format(npzfile["1"])) 

Запуск этого скрипта показывает следующее:

 npzfile.files: ['1', '3', '2'] npzfile["1"]: [0 1 2 3 4 5 6 7 8 9] 

Обратите внимание, что ваши ключи dict должны быть строками. Возможно, это была проблема?

Я работаю numpy 1.10.4

Python - лучший язык программирования в мире.