Append и resize для numpy массива
Я хотел бы добавить значение в конце моего numpy.array
.
Я видел функцию numpy.append
, но она выполняет точную копию исходного массива, добавляя, наконец, мое новое значение. Я бы хотел избежать копий, так как мои массивы большие.
Я использую метод resize
, а затем устанавливаю последний индекс, доступный для нового значения.
Можете ли вы подтвердить, что resize
- лучший способ добавить значение в конце?
Разве это не перемещает память вокруг?
oldSize = myArray,shape(0)
myArray.resize( oldSize + 1 )
myArray[oldSize] = newValue
Ответы
Ответ 1
Мой простой эксперимент по синхронизации добавления и изменения размеров показал, что изменение размера примерно в 3 раза быстрее и его самый быстрый способ, который я могу придумать для этого. Кроме того, ответ на этот вопрос, по-видимому, означает, что изменение размера массива - путь, потому что он на месте.
Вердикт:
Использовать изменение размера
P.S. Вы также можете проверить эту дискуссию из списка почтовых рассылок.