Когда я сжимаю массив numpy, используя метод resize
(т. Е. Массив становится меньше из-за resize
), гарантировано ли, что копия не создана?Изменение размера массива NumPy до меньшего размера без копирования
Пример:
a = np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a.resize(5, refcheck=False) # array([0, 1, 2, 3, 4])
В моем понимании это всегда должно быть возможно без создания копии. Мой вопрос: действительно ли реализация гарантирует, что это всегда так? К сожалению, документация resize ничего не говорит об этом.
Если ваш новый размер всегда будет меньше, то почему бы не нарезать массив и не присвоить себе? – EdChum
@EdChum: Вы имеете в виду 'a = a [: 5]'? Честно говоря, я не думал об этом. Однако я не знаю, как нарезка работает внутри. Будет ли это работать без копии данных, которые будут сделаны где-то? – luator