代码之家  ›  专栏  ›  技术社区  ›  SuperCiocia

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

  •  0
  • SuperCiocia  · 技术社区  · 6 年前

    我救了一个孩子 dict 属于 arrays .npy 只是 正在保存数组。

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

    基本上:如果我回去,我会把它保存为 json hdf5 文件,这样我就可以打开一些查看器,可以清楚地看到数据。
    做了那件事 npy先生

    2 回复  |  直到 6 年前
        1
  •  4
  •   hpaulj    6 年前

    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)
    

    pickled . 字典里的数组被 np.save 格式。字典和对象dtype数组都可以包含指向其他Python对象的指针,这些对象需要自己的pickling方法。换句话说,它是一条巨蟒!。

    如果你试图使用 json tolist() 将数组转换为列表。 json文件 只保存字典、列表和字符串(许多语言共享的基本javascript结构)。numpy阵列也可能有第三方序列化程序。

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

        2
  •  0
  •   Philip DiSarro    6 年前

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

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

    1. 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')