У меня есть (4,) массивы, которые я хочу сохранить на диск (размеры, с которыми я работаю, не могут поместиться в памяти, поэтому мне нужно динамически загружать то, что мне нужно).Тем не менее, я хочу иметь это в одном numpy.memmap
.Не уверен, если это возможно, но любое предложение будет с благодарностью.
У меня есть это без numpy.memmap
arr1 = [1,2,3,4]
arr2 = [2,3,4,5]
arr3 = [3,4,5,6]
arr4 = [4,5,6,7]
data = []
data.extend([arr1])
data.extend([arr2])
data.extend([arr3])
data.extend([arr4])
print(data)
[[1, 2, 3, 4],[2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7]]
Я хочу иметь возможность сделать что-то вроде этого:
import numpy as np
arr1 = np.memmap('./file1', np.dtype('O'), mode='w+', shape=(4,))
arr1[:] = [1,2,3,4]
arr2 = np.memmap('./file2', np.dtype('O'), mode='w+', shape=(4,))
arr2[:] = [2,3,4,5]
arr3 = np.memmap('./file3', np.dtype('O'), mode='w+', shape=(4,))
arr3[:] = [3,4,5,6]
arr4 = np.memmap('./file4', np.dtype('O'), mode='w+', shape=(4,))
arr4[:] = [4,5,6,7]
data = []
data.extend([arr1])
data.extend([arr2])
data.extend([arr3])
data.extend([arr4])
print (data)
[memmap([1, 2, 3, 4], dtype=object), memmap([2, 3, 4, 5], dtype=object), memmap([3, 4, 5, 6], dtype=object), memmap([4, 5, 6, 7], dtype=object)]
Это требует от меня создания разных файлов на массив, и я действительно хочу иметь один memmap
, который бы обрабатывал весь мини-массивы 4. Может ли кто-нибудь предоставить способ сделать это, используя memmaps
?
Возможность расширения, т.е. data.extend()
, важна, так как я не знаю, сколько у меня мини-массивов.