Сбой массива Numpy при загрузке из файла из-за ошибки памяти, но в той же среде была создана исходная переменная Numpy - PullRequest
0 голосов
/ 15 октября 2018

У меня есть очень большой массив 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,...

первый столбец - целое число, второй столбец - список целых чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...