如何从内存块中读取一个numpy ndarray?

时间:2018-08-18 13:23:33

标签: python numpy

我有一块内存,其中存储着一个float32数字的二维数组。

例如,形状为(1000, 10),而我在内存中的存储空间类似于带有10000元素的C数组。

是否可以仅通过指定形状和dtype将其转换为numpy数组?

2 个答案:

答案 0 :(得分:0)

结果numpy支持将缓冲区解释为一维array

import numpy as np

def load_array(data, shape):
    return np.frombuffer(data, dtype=np.float32).reshape(shape)

答案 1 :(得分:0)

从磁盘读取内存映射的数组涉及 numpy.memmap()函数。由于该信息未存储在文件中,因此需要再次指定数据类型和形状。

调用包含磁盘中数据的文件: memmapped.dat

将numpy导入为np

array = np.memmap('memmapped.dat',dtype = np.float32,shape =(1000,10))

Ref:https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.memmap.htmlhttps://ipython-books.github.io/48-processing-large-numpy-arrays-with-memory-mapping/