首页 > 解决方案 > Python npy文件如何访问变量

问题描述

npy使用以下 tensorlayer 命令创建了一个数据集。

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

如何解决此错误?我想我可以使用三个变量来解决问题,但我宁愿只跟踪一个文件。

解决方案(归功于 Goyo):

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

标签: pythonnumpydatapersistance

解决方案


尝试这个:

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

推荐阅读