如何在 npz 文件中显示所有元素名称而无需完全加载?

use*_*739 10 numpy

我使用以下代码在 npz 文件中显示元素名称。但是它需要完全加载文件,这可能会很慢,尤其是当文件很大时。有没有办法提取元素名称而不必完全加载文件?

x = numpy.load(file)
for k in x.iterkeys():
    print k
Run Code Online (Sandbox Code Playgroud)

Sam*_*ria 13

无需将整个文件读入内存,您可以使用mmap[ memmap 文档]访问磁盘上大文件的小片段。默认为r+(打开现有文件进行读写)。
我下面的测试代码使用 NpzFilefiles属性 [ NpzFile 文档] 和“mnist.npz”测试数据 [ mnist.npz 链接],在 Python 3.6 中一切似乎都非常快:

>>> import numpy as np
>>> x = np.load('mnist.npz', mmap_mode='r')
>>> for k in x.files:
...     print(k)
... 
x_test
x_train
y_train
y_test
>>> 
Run Code Online (Sandbox Code Playgroud)

请查看链接的 numpy.memmap 了解更多信息。

编辑: print(x.files)似乎也工作正常。

  • 或者等效地在一行中:`print(x.files)` (6认同)