我使用以下代码在 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)
似乎也工作正常。