您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

numpy Loadtxt函数似乎消耗太多内存

numpy Loadtxt函数似乎消耗太多内存

将此浮点数组保存到文本文件中,将创建一个24M文本文件。当您重新加载该文件时,numpy会逐行浏览文件,解析文本并重新创建对象。

我希望这段时间内存使用量会激增,因为numpy在到达文件末尾之前不知道结果数组需要多大,所以我希望至少有24M + 8M +其他使用的临时内存。

这是numpy代码的相关部分,来自/lib/npyio.py

    # Parse each line, including the first
    for i, line in enumerate(itertools.chain([first_line], fh)):
        vals = split_line(line)
        if len(vals) == 0:
            continue
        if usecols:
            vals = [vals[i] for i in usecols]
        # Convert each value according to its column and store
        items = [conv(val) for (conv, val) in zip(converters, vals)]
        # Then pack it according to the dtype's nesting
        items = pack_items(items, packing)
        X.append(items)

    #...A bit further on
    X = np.array(X, dtype)

不必担心额外的内存使用情况,因为这只是python的工作方式- 尽管您的python进程似乎正在使用100M内存,但在内部它会保持对不再使用哪些项的了解,并将对其进行重用记忆。例如,如果要在一个程序中重新运行此保存加载过程(保存,加载,保存,加载),则内存使用量不会增加到200M。

其他 2022/1/1 18:36:20 有471人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶