是否有GUI来查看.npy文件的内容?

问题描述 投票:0回答:2

我正在使用Python 2。

我已经将dictarrays保存到我计算机上的.npy文件中。如果我把它作为一个文本文件打开,只是看到一堆乱七八糟的ASCII字符,正如人们所期望的那样,因为我不只是保存数组。

我可以通过np.load在Python控制台中看到它的内容,但我想知道是否有一个GUI允许我直接看到文件的内容,即不通过python控制台?

基本上:如果我回去,我会将其保存为jsonhdf5文件,以便我可以与一些观看者打开它们并且可以清楚地看到数据。 没有这样做,并保存.npy文件,如果他们是json或hdf5,我能以类似的方式看到它的内容吗?

python numpy save
2个回答
2
投票

np.load(或克隆)是加载npy的唯一原因:

In [84]: adict = {'a':np.arange(3), 'b':np.ones((2,3),int)}
In [85]: np.save('foo.npy',adict)
In [86]: np.load('foo.npy')
Out[86]: 
array({'a': array([0, 1, 2]), 'b': array([[1, 1, 1],
       [1, 1, 1]])}, dtype=object)

请注意,字典已包装在0d对象dtype数组中。字典结构然后是pickled。带有字典的数组用np.save格式进行腌制。字典和对象dtype数组都可以包含指向其他Python对象的指针,这些对象需要自己的pickle方法。换句话说,它一直是Python!

如果您尝试使用json,您会发现numpy数组不是json可序列化的。您将不得不应用tolist()将数组转换为列表。 json只保存字典,列表和字符串(许多语言共享的基本javascript结构)。 numpy数组可能还有第三方序列化程序。

h5是用C ++编写的,有很多语言接口。 h5dump是一个方便的观众。但要从Python字典中编写字典,您必须使用h5py(或pytables)。字典很好地映射到h5组,numpy数组映射到h5数据集。


0
投票

目前没有能够以纯文本形式阅读.npy内容的GUI。但是,如果您认为这样的程序对社区有益,那么您可以轻松创建这样的工具。

让我们看看上述工具可以使用的几种方式:

  1. 只需使用console命令将np.load的结果输出到文件: $ python your_program.py > file.txt 这会将控制台输出从your_program.py重定向到file.txt
  2. 使用contextlib.redirect_stdout()函数仅将stdout中的相关数据输出到file.txt

像这样:

from contextlib import redirect_stdout
    with open("help.txt", "w") as f:
         with redirect_stdout(f):
             print('it now prints to 'help.text')

0
投票

实际上有一个用于查看numpy文件的开源GUI查看器:https://github.com/ArendJanKramer/Numpyviewer

© www.soinside.com 2019 - 2024. All rights reserved.