Можно ли создать numpy.memmap из массива массивов? - PullRequest
1 голос
/ 15 апреля 2019

У меня есть (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(), важна, так как я не знаю, сколько у меня мини-массивов.

...