是否有GUI来查看.npy文件的内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有GUI来查看.npy文件的内容?相关的知识,希望对你有一定的参考价值。
我正在使用Python 2。
我已经将dict
的arrays
保存到我计算机上的.npy
文件中。如果我把它作为一个文本文件打开,只是看到一堆乱七八糟的ASCII字符,正如人们所期望的那样,因为我不只是保存数组。
我可以通过np.load
在Python控制台中看到它的内容,但我想知道是否有一个GUI允许我直接看到文件的内容,即不通过python控制台?
基本上:如果我回去,我会将其保存为json
或hdf5
文件,以便我可以与一些观看者打开它们并且可以清楚地看到数据。
没有这样做,并保存.npy
文件,如果他们是json或hdf5,我能以类似的方式看到它的内容吗?
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数据集。
目前没有能够以纯文本形式阅读.npy
内容的GUI。但是,如果您认为这样的程序对社区有益,那么您可以轻松创建这样的工具。
让我们看看上述工具可以使用的几种方式:
- 只需使用console命令将
np.load
的结果输出到文件:$ python your_program.py > file.txt
这会将控制台输出从your_program.py
重定向到file.txt
。 - 使用
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')
实际上有一个用于查看numpy文件的开源GUI查看器:https://github.com/ArendJanKramer/Numpyviewer
以上是关于是否有GUI来查看.npy文件的内容?的主要内容,如果未能解决你的问题,请参考以下文章