小编ham*_*ish的帖子

如何在磁盘上创建一个numpy .npy文件?

是否可以创建.npy文件而不先在内存中分配相应的数组?

我需要创建并使用大型numpy数组,这个数组太大而无法在内存中创建.Numpy支持内存映射,但据我所知,我的选项是:

  1. 使用numpy.memmap创建memmapped文件.这会直接在磁盘上创建文件而不分配内存,但不存储元数据,所以当我稍后重新映射文​​件时,我需要知道它的dtype,形状等.在下面,请注意不指定形状结果在memmap中被解释为平面数组:

    In [77]: x=memmap('/tmp/x', int, 'w+', shape=(3,3))
    
    
    In [78]: x
    Out[78]: 
    memmap([[0, 0, 0],
           [0, 0, 0],
           [0, 0, 0]])
    
    
    In [79]: y=memmap('/tmp/x', int, 'r')
    
    
    In [80]: y
    Out[80]: memmap([0, 0, 0, 0, 0, 0, 0, 0, 0])
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在内存中创建一个数组,使用numpy.save保存,之后可以在memmapped模式下加载.这会将元数据与磁盘上的数组数据一起记录,但需要为整个阵列分配至少一次内存.

python numpy

12
推荐指数
2
解决办法
4765
查看次数

标签 统计

numpy ×1

python ×1