Python npy файл, как получить доступ к переменным - PullRequest
0 голосов
/ 02 декабря 2018

Я создал набор данных npy, используя следующую команду тензорного слоя.

tl.files.save_any_to_npy(
save_dict={
    'images': aggregated_images, 
    'actions': aggregated_actions,
    'rewards': aggregated_rewards}, 
    name='./data/episode0.npy')

Я могу загрузить файл (награды / действия - это массивы скаляров; изображения - это массив матриц) с помощью

import numpy as np
data = np.load('./data/episode0.npy')

Я думал, что это будет похоже насловарь (print(data) работает).Следовательно, я попытался

actions = data['actions'] 

, но это дает мне следующую ошибку

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
>>> actions = data['rewards']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices

Как я могу устранить эту ошибку?Я думаю, что я мог бы использовать три переменные, чтобы найти обходной путь, но я бы предпочел отслеживать только один файл со всеми решениями.

(заслуга Гойо):

import tensorlayer as tl
data = tl.files.load_npy_to_any(path='./data', name='episode0.npy')
actions = data['actions']

1 Ответ

0 голосов
/ 02 декабря 2018

Попробуйте это:

data = np.load('./data/episode0.npy').item()
data["actions"]
...