@berng

Python/numpy: как увеличить массив на одну строку без использования дополнительной памяти?

Есть большой массив numpy, очень большой - еле помещается в оперативную память.
Есть-ли возможность быстро добавить к нему новую строку, не используя дополнительную память и не копируя переменную? Именно добавить к существующему массиву, не выделяя при этом дополнительную память под его копию. Преобразовывать во что-то нет возможности, нужен именно numpy.array.
Спасибо.
  • Вопрос задан
  • 329 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Нельзя. В этом и состоит отличие массива от списка. Список легче растянуть, чем массив, так как массив хранит все свои данные одним блоком, а список хранит одним блоком только ссылки на свои элементы.
Нужно либо выделять массив с запасом, либо сбрасывать данные на диск для последующего чтения в numpy-массив.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Нет.

Чтобы сделать то, что вы хотите - надо программе захватить память сразу после массива, чтобы было его куда растягивать.

Это даже в C++ сделать нельзя, не говоря уже о питоне.

Edit: Вообще говоря в C++ есть realloc, Но оно не гарантирует расширение существующей области памяти. Ибо она может быть занята чем-то еще.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы