У меня есть очень большой массив numpy, который я создал и сохранил без проблем, используя
numpy.save('file.npy', NumpyArrays)
Однако, когда я попытался загрузить, используя
NumpyArrays = numpy.load('file.npy')
в точно такой же среде(Google Colab Laboratory) Моя среда падает из-за нехватки памяти.Я попытался перезапустить среду, чтобы она была свежей, и единственная попытка - загрузить массив, но он все равно вылетает.
Как среда, в которой создается и сохраняется исходный массив numpy, занимает меньше памяти, чем просто попытка загрузить этот же массив из памяти?
Я пытался использовать ответ здесь, чтобы сэкономить память
Эффективный способ частичного чтения большого файла с обломками?
путем открытия только в режиме записи,но я получаю эту ошибку
ValueError: Массив не может быть отображен в память: объекты Python в dtype.
Я предполагаю, что это потому, что второй столбецсписок целых чисел.
Если это уместно, вот как выглядит моя переменная numpy
numpyVariable[0:5]
array([[0, list([10158697, 5255434, 9860860, 3677049, 3451292, 7225330])],
[1,
list([5985929, 7356938, 5232932, 4623077, 10461651, 6629144, 2738221, 7672279, 3197654, 11678039, 1912097, 6581279, 8141689, 6694817, 6139889, 7946369, 3995629, 3169031, 3793217, 6990097, 11298098, 6120907, 5336712, 7366785, 7363171, 3933563, 6484209, 4243394, 6371367, 4361218, 11469370, 6166715, 11519607, 11602639, 10759034, 6432476, 5327726, 11390220, 7009744, 10225744, 3781058, 1305863, 462965, 1158562, 2620006, 73896, 4945223, 11780201, 3044821])],
[2, list([10847593, 8665775, 341568, 4164850, 6509965, 8227738])],
[3,
list([9105020, 1896456, 2757197, 5911741, 8123078, 10629261, 5646782, 5255907, 8802504, 3735293, 5496511, 1612181, 10029269, 8911733, 8035123, 4855475, 2226494, 10448630, 2041328, 532211, 10049766, 7320606, 7783187, 11536583, 9192742, 8965808, 7750786, 2462038, 111935, 4306882, 11193228])],
[4,
list([11406300, 9947761, 2539951, 1928472, 1286647, 1360522, 9680046, 1304518, 2577907, 5903319, 6304940, 8249558, 11156695, 5704721, 9753227, 465481, 8849435, 5040956, 8124190, 11094867, 9225419, 10531161, 3796335, 6660230, 823696, 3271428, 9167574])]],
dtype=object)
Так как это может быть сложно интерпретировать, вот исходный кадр данных pandas, из которого был преобразован массив numpy (использование df.values
)
EmbedID MappedC
0 0 [10158697, 5255434, 9860860, 3677049, 3451292,...
1 1 [5985929, 7356938, 5232932, 4623077, 10461651,...
2 2 [10847593, 8665775, 341568, 4164850, 6509965, ...
3 3 [9105020, 1896456, 2757197, 5911741, 8123078, ...
4 4 [11406300, 9947761, 2539951, 1928472, 1286647,...
первый столбец - целое число, второй столбец - список целых чисел.