从.npy文件中提取特定值

时间:2014-03-10 12:44:21

标签: python arrays numpy loading extract

我有一个.npy文件,其中我基本上都知道所有内容(大小,元素数量,元素类型等),并且我希望能够在不加载数组的情况下检索特定值。目标是尽可能少地使用内存。

我正在寻找像

这样的东西
def extract('test.npy',i,j):
    return "test.npy[i,j]"

我知道如何使用文本文件(请参阅最近的问题),但使用npy数组执行此操作可以让我做的不仅仅是行提取。

另外,如果你知道用scipy稀疏矩阵做任何事情都会很棒。

谢谢。

1 个答案:

答案 0 :(得分:5)

只需使用data = np.load(filename, mmap_mode='r')(或其他一种模式,如果您还需要更改特定元素)。

这将返回一个内存映射数组。数组的内容不会加载到内存中并且将在磁盘上,但您可以像平常那样通过索引数组来访问各个项目。 (请注意,访问某些切片所需的时间比访问其他切片要长得多,具体取决于阵列的形状和顺序。)

HDF是一种更有效的格式,但.npy格式旨在允许使用memmapped数组。