← retour aux snippets

numpy: memmap (fichiers mappés en mémoire)

Travailler sur des tableaux trop gros pour la RAM.

python numpy #numpy#memmap#io

objectif

Travailler sur des tableaux trop gros pour la RAM.

code minimal

import numpy as np

m = np.memmap("arr.mmp", dtype="float32", mode="w+", shape=(10,10))
m[:] = 1.23
m.flush()
m2 = np.memmap("arr.mmp", dtype="float32", mode="r", shape=(10,10))
print(float(m2[0,0]))

utilisation

import numpy as np

m = np.memmap("arr2.mmp", dtype="int32", mode="w+", shape=(5,))
m[:] = np.arange(5)
m.flush()
print(int(np.memmap("arr2.mmp", dtype="int32", mode="r", shape=(5,))[4]))

variante(s) utile(s)

import numpy as np, os

print(os.path.exists("arr.mmp"))

notes

  • Toujours flush/fermer avant relecture dans un autre processus.