Python npy文件如何访问变量

MrY*_*ath 2 python numpy data-persistence

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

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

我可以使用以下命令加载文件(奖励/操作是标量数组;图像是矩阵数组)

import numpy as np
data = np.load('./data/episode0.npy')
Run Code Online (Sandbox Code Playgroud)

我认为这类似于字典(print(data)作品)。因此,我尝试了

actions = data['actions'] 
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误

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
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?我想我可以使用三个变量来解决问题,但我宁愿只跟踪一个文件及其所有内容。

解决方案(归功于 Goyo):

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

小智 6

尝试这个:

data = np.load('./data/episode0.npy').item()
data["actions"]
Run Code Online (Sandbox Code Playgroud)