Странное поведение ОЗУ при преобразовании списка текстов в массив numpy - PullRequest
0 голосов
/ 08 июля 2019

У меня есть список Python очень разного размера текстов. Когда я пытаюсь преобразовать этот список в массив Numpy, в памяти появляются очень большие скачки.

Я использую np.array(list_of_texts) для конвертации. Ниже приведено использование памяти в строке на строку, которое возвращается memory_profiler примера преобразования списка текстов.

from memory_profiler import profile
import numpy as np
Line #    Mem usage    Increment   Line Contents
================================================
     4     58.9 MiB     58.9 MiB   @profile
     5                             def f():
    23     59.6 MiB      0.3 MiB       small_texts = ['a' for i in range(100000)]
    24     60.4 MiB      0.8 MiB       big_texts = small_texts + [''.join(small_texts)]
    26     61.4 MiB      0.0 MiB       a = np.array(small_texts)
    27  38208.9 MiB  38147.5 MiB       b = np.array(big_texts)

Я подозреваю, что проблема связана с различным размером текстов в списке.

Есть идеи, почему это происходит? Как сохранить разумную оперативную память при преобразовании списка текстов в массив numpy?

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