Не используйте его, даже если это действительно работает, это может прекратить работать в следующем пакете обновления / версия.
момент Вы делаете что-то на основе внутренних деталей реализации а не контракта (в этом случае, MSDN), можно ожидать попадать в беду в будущем.
Нет никакого способа гарантировать, что вы можете увеличить массив на месте, кроме создания пустого массива (numpy.empty) максимально возможного размера и последующего использования его представления в конце. Вы не можете начать с малого, потому что нет гарантии, что вы сможете расширить любую память на карте, не сбивая некоторые другие данные. (И все это намного более низкий уровень, чем Python позволяет вам получить доступ изнутри интерпретатора.)
Лучше всего, вероятно, numpy.fromiter . Если посмотреть на источник, то по мере увеличения количества элементов массив каждый раз расширяется чуть более чем на 50%. Если вы можете легко получить количество строк (скажем, путем подсчета строк), вы даже можете передать ему счет.
Возможный вариант - сначала выполнить однократный проход через файл для подсчета количества строк, не загружая их.
Другой вариант - каждый раз удваивать размер таблицы, что имеет два преимущества:
Если вы возьмете динамический route, вы можете измерить длину первой строки в байтах, а затем угадать количество строк, вычислив (количество байтов в файле / количество байтов в первой строке). Начните с таблицы такого размера.