为什么从文件读取的numpy narray会占用这么多内存?

祝方泽

该文件包含2000000行:每行包含208列,以逗号分隔,如下所示:

0.0863314058048,0.0208767447842,0.03358010485,0.0,1.0,0.0,0.314285714286,0.336293217457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,0,0,0,0,0,0

该程序将该文件读取到一个numpy narray中,我希望它将消耗大约(2000000 * 208 * 8B) = 3.2GB内存。但是,当程序读取此文件时,我发现程序消耗了大约20GB的内存。

我对为什么我的程序消耗了如此多的内存而没有达到预期感到困惑?

索洛GP卡斯特罗

我使用numpy的1.9.0和记忆inneficiencynp.loadtxt()np.genfromtxt()似乎是直接关系到它们是基于临时表来存储数据的事实:

通过预先了解shape数组的大小,您可以想到一个文件读取器,该读取器将通过使用相应的数据存储数据来消耗非常接近理论内存量(在这种情况下为3.2 GB)的内存dtype

def read_large_txt(path, delimiter=None, dtype=None):
    with open(path) as f:
        nrows = sum(1 for line in f)
        f.seek(0)
        ncols = len(f.next().split(delimiter))
        out = np.empty((nrows, ncols), dtype=dtype)
        f.seek(0)
        for i, line in enumerate(f):
            out[i] = line.split(delimiter)
    return out

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么python字典会占用这么多内存?

来自分类Dev

当我使用scipy乘以两个CSR矩阵时,为什么会占用这么多内存?

来自分类Dev

为什么我的UIImage占用这么多内存?

来自分类Dev

为什么我的UIImage占用这么多内存?

来自分类Dev

Clojure:为什么此编写器会占用这么多堆空间?

来自分类Dev

为什么简单的程序会占用这么多的存储空间?

来自分类Dev

为什么简单的程序会占用这么多的存储空间?

来自分类Dev

为什么我的页表占用了这么多内存?

来自分类Dev

POP桌面:占用这么多内存和cpu的'gjs'进程是什么?

来自分类Dev

为什么读取文件会占用整个文件的内存?

来自分类Dev

CentOS:为什么“ cma”进程占用这么多RAM?

来自分类Dev

IE为什么要占用这么多CPU?

来自分类Dev

扫描为什么要占用这么多空间?

来自分类Dev

为什么Grunt / Gulp插件占用这么多空间?

来自分类Dev

Python:为什么等待线程占用这么多 CPU

来自分类Dev

为什么这段代码会占用那么多内存?

来自分类Dev

为什么这个Haskell程序分配这么多内存?

来自分类Dev

为什么这个tensorflow循环需要这么多的内存?

来自分类Dev

为什么此程序会消耗这么多内存?

来自分类Dev

为什么 WriterT State 需要这么多内存?

来自分类Dev

MPG文件为什么要占用这么多空间?它是过时的格式吗?

来自分类Dev

为什么X.dot(XT)在numpy中需要这么多的内存?

来自分类Dev

什么是`/home/.ecryptfs`,为什么它占用这么多空间?

来自分类Dev

我在Ubuntu中看到的这个特殊文件是什么,为什么占用这么多空间?

来自分类Dev

为什么iostream在MCU上占用这么多闪存空间?

来自分类Dev

为什么/ lib / modules在xubuntu上占用了这么多空间?

来自分类Dev

为什么/ lib / modules在xubuntu上占用了这么多空间?

来自分类Dev

为什么我的自托管wordpress网站占用这么多空间?

来自分类Dev

为什么XCode命令行工具占用这么多空间?

Related 相关文章

  1. 1

    为什么python字典会占用这么多内存?

  2. 2

    当我使用scipy乘以两个CSR矩阵时,为什么会占用这么多内存?

  3. 3

    为什么我的UIImage占用这么多内存?

  4. 4

    为什么我的UIImage占用这么多内存?

  5. 5

    Clojure:为什么此编写器会占用这么多堆空间?

  6. 6

    为什么简单的程序会占用这么多的存储空间?

  7. 7

    为什么简单的程序会占用这么多的存储空间?

  8. 8

    为什么我的页表占用了这么多内存?

  9. 9

    POP桌面:占用这么多内存和cpu的'gjs'进程是什么?

  10. 10

    为什么读取文件会占用整个文件的内存?

  11. 11

    CentOS:为什么“ cma”进程占用这么多RAM?

  12. 12

    IE为什么要占用这么多CPU?

  13. 13

    扫描为什么要占用这么多空间?

  14. 14

    为什么Grunt / Gulp插件占用这么多空间?

  15. 15

    Python:为什么等待线程占用这么多 CPU

  16. 16

    为什么这段代码会占用那么多内存?

  17. 17

    为什么这个Haskell程序分配这么多内存?

  18. 18

    为什么这个tensorflow循环需要这么多的内存?

  19. 19

    为什么此程序会消耗这么多内存?

  20. 20

    为什么 WriterT State 需要这么多内存?

  21. 21

    MPG文件为什么要占用这么多空间?它是过时的格式吗?

  22. 22

    为什么X.dot(XT)在numpy中需要这么多的内存?

  23. 23

    什么是`/home/.ecryptfs`,为什么它占用这么多空间?

  24. 24

    我在Ubuntu中看到的这个特殊文件是什么,为什么占用这么多空间?

  25. 25

    为什么iostream在MCU上占用这么多闪存空间?

  26. 26

    为什么/ lib / modules在xubuntu上占用了这么多空间?

  27. 27

    为什么/ lib / modules在xubuntu上占用了这么多空间?

  28. 28

    为什么我的自托管wordpress网站占用这么多空间?

  29. 29

    为什么XCode命令行工具占用这么多空间?

热门标签

归档