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

Posted

技术标签:

【中文标题】是否有 GUI 可以查看 .npy 文件的内容?【英文标题】:Is there a GUI to see contents of .npy file? 【发布时间】:2018-09-14 16:30:46 【问题描述】:

我正在使用 Python 2。

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

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

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

【问题讨论】:

.npy 格式是二进制数据格式,因此即使您的数组仅包含数字数据,它仍然会在文本编辑器中显示为垃圾值。如果您想以人类可读的格式保存数据,请使用np.savetxt 正在为您开发一个使用 PySimpleGUI 作为 GUI 的解决方案。已经有显示 CSV 和 panda 文件的演示,所以应该可以......也许...... 一位贡献者完成了一个简单的 numpy 表查看器,但是,它使用 Python 3,并且您已明确声明您使用的是 Python 2,因此我不会将其发布为答案。如果您可以升级到 3,这可能是一个选项。如果您可以提供一个示例 numpy 文件,我们可以检查它是否在查看器中正确显示。 .npy文件的内容,当我以np.load(file)[()]打开时为:0: [array([0])], 1: [array([1]), array([-1])], 2: [array([2]), array([-2])], 3: [array([3]), array([-3])], 4: [array([4]), array([-4])], 5: [array([5]), array([-5])], 6: [array([6]), array([-6])], 7: [array([7]), array([-7])], 8: [array([8]), array([-8])], 9: [array([9]), array([-9])], 10: [array([10]), array([-10])], 11: [array([11]), array([-11])], 12: [array([12]), array([-12])], 13: [array([13]), array([-13])], 您能发布您的 npy 文件或类似文件吗?我有一个 numpy 文件查看器正在工作,并想检查以确保您的数据可以使用它。 【参考方案1】:

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 对象的指针,这些对象需要自己的酸洗方法。换句话说,它一直是 Python!。

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

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

【讨论】:

【参考方案2】:

我认为这个工具可以帮助你做你需要的。它可以帮助您编辑 .npy 文件(如电子表格)的内容。它还具有将 .npy 文件可视化为 2D 灰度图像和 3D 点云的选项:

https://github.com/csmailis/NPYViewer

【讨论】:

【参考方案3】:

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

让我们看一下上述工具的几种工作方式:

    只需使用控制台命令将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')

【讨论】:

以上是关于是否有 GUI 可以查看 .npy 文件的内容?的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何用于“git add -p”的 GUI 工具?

将文件夹下所有png转为npy并查看

是否有任何 MySQL 工具可用于使用 GUI(而不是通过编写代码手动)修改存储过程?

是否有任何浏览器可以查看 Berkeley DB 文件的内容?

查看 .resource 文件的内容

用于查看 Neo4j 数据库的 GUI 工具 [关闭]