первый вопрос здесь. Я постараюсь быть кратким.
Я создаю несколько массивов, содержащих информацию о характеристиках для приложения машинного обучения. Поскольку массивы не имеют равных размеров, я храню их в словаре, а не в массиве. Есть два разных типа функций, поэтому я использую два разных словаря.
Я также создаю ярлыки для работы с функциями. Эти метки хранятся в массивах. Кроме того, существуют строки, содержащие точные параметры, используемые для запуска script и временной метки.
В целом это выглядит так:
import numpy as np
feature1 = {}
feature2 = {}
label1 = np.array([])
label2 = np.array([])
docString = 'Commands passed to the script were...'
# features look like this:
feature1 = {'case 1': np.array([1, 2, 3, ...]),
'case 2': np.array([2, 1, 3, ...]),
'case 3': np.array([2, 3, 1, ...]),
and so on... }
Теперь моя цель будет заключаться в следующем:
np.savez(outputFile,
saveFeature1 = feature1,
saveFeature2 = feature2,
saveLabel1 = label1,
saveLabel2 = label2,
saveString = docString)
Это, по-видимому, работает (т.е. такой файл сохраняется без ошибки и может быть загружен снова). Однако, когда я снова пытаюсь загрузить, например, функцию из файла:
loadedArchive = np.load(outFile)
loadedFeature1 = loadedArchive['saveFeature1']
loadedString = loadedArchive['saveString']
Затем вместо того, чтобы возвращать словарь, я получаю numpy массив формы (0), где я не знаю, как получить доступ к содержимому:
In []: loadedFeature1
Out[]:
array({'case 1': array([1, 2, 3, ...]),
'case 2': array([2, 3, 1, ...]),
..., }, dtype=object)
Также строки становятся массивами и получают странный тип данных:
In []: loadedString.dtype
Out[]: dtype('|S20')
Короче говоря, я предполагаю, что это не так, как это делается правильно. Однако я бы предпочел не помещать все переменные в один большой словарь, потому что я буду извлекать их в другом процессе и хотел бы просто перебрать словарь .keys(), не беспокоясь о сравнении строк.
Любые идеи приветствуются. Благодаря