Numpy: автоматически загружать файлы в .npz в новые переменные в зависимости от ключа - PullRequest
0 голосов
/ 29 мая 2020

Мне предоставляется файл .npz (data.npz), который содержит 3 файла .npy. Я точно знаю, что в одном из трех файлов есть ключ "t". Я не знаю явно ключи двух других файлов. (Я знаю, что могу вызвать list () в этом файле, чтобы увидеть ключи, но я не хочу делать это вручную, это должно быть автоматизировано).

Я хочу извлечь все три файла и назначить их переменным. ключ 't' должен быть назначен на t, в то время как два других «неизвестных» ключа должны быть назначены на переменные a, b (независимо от их фактических ключей). В идеале решение t должно работать независимо от того, сколько существует дополнительных ключей, кроме t, и должно назначать их переменным буквенно-цифровым образом, а не по имени ключа (за исключением t).

До сих пор я пробовал два решения:

первое преобразовывает файл .npz в словарь

data = dict(np.load('data.npz'))
t = data.pop('t')
a = data.pop((list(data)[0]))
b = data.pop((list(data)[0]))

, но проблема с этим решением в том, что я не может перебирать любое количество файлов, и каждая переменная должна быть явно определена

вторая использует a для l oop:

data = np.load('data.npz')
for var in data:
    globals()[var] = data[var]

это намного более плавно, за исключением того, что я не могу понять, как последовательно заменить имя ключа (исключая t) на «a, b, c» et c.

Простите, если это сбивает с толку ... Я очень запутался!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...