我创建了这个numpy数组,并将其存储在磁盘中,如下所示:
s = (b'foo', b'bar', b'baz', b'buzz')
def build_numpy_array():
return np.fromiter((s for _ in range(200)), dtype=[('foo','S40'),
('bar', 'S40'), ('baz', 'S40'),
('buzz', 'S40')
])
np.save('data.dat', {'data': build_numpy_array()})
这很好np.load('data.dat.npy')
但是,我想在memmap模式下使用它。所以这失败了
np.load('data.dat.npy',mmap_mode='r')
ValueError: Array can't be memory-mapped: Python objects in dtype.
这给出了奇怪的编码
np.memmap('data.dat.npy', mode='r',dtype=[('foo','S40'),
('bar', 'S40'), ('baz', 'S40'),
('buzz', 'S40')
])
(b'