Append и resize для numpy массива

Я хотел бы добавить значение в конце моего numpy.array. Я видел функцию numpy.append, но она выполняет точную копию исходного массива, добавляя, наконец, мое новое значение. Я бы хотел избежать копий, так как мои массивы большие.

Я использую метод resize, а затем устанавливаю последний индекс, доступный для нового значения. Можете ли вы подтвердить, что resize - лучший способ добавить значение в конце? Разве это не перемещает память вокруг?

oldSize = myArray,shape(0)
myArray.resize( oldSize + 1 )
myArray[oldSize] = newValue

Ответы

Ответ 1

Мой простой эксперимент по синхронизации добавления и изменения размеров показал, что изменение размера примерно в 3 раза быстрее и его самый быстрый способ, который я могу придумать для этого. Кроме того, ответ на этот вопрос, по-видимому, означает, что изменение размера массива - путь, потому что он на месте.

Вердикт: Использовать изменение размера

P.S. Вы также можете проверить эту дискуссию из списка почтовых рассылок.