Задать вопрос
@berng

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

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

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

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

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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽