numpy.core.defchararray.chararray.resize
метод
-
chararray.resize(new_shape, refcheck=True) -
Изменение формы и размера массива на месте.
Параметры: -
new_shape : tuple of ints, or n ints -
Форма изменённого массива.
-
refcheck : bool, optional -
Если False, счётчик ссылок не будет проверяться. По умолчанию True.
Возвращает: - None
Возможные исключения: - ValueError
-
Если массив
aне владеет своими данными или существуют ссылки или представления на них, и память данных должна быть изменена. Только PyPy: всегда будет вызвано исключение, если память данных должна быть изменена, так как нет надёжного способа определить, существуют ли ссылки или представления на неё. - SystemError
-
Если указан ключевой параметр
order. Такое поведение является ошибкой в NumPy.
См. также
-
resize - Возвращает новый массив с заданной формой.
Примечания
При необходимости перевыделяет память для области данных.
Изменить размер можно только для непрерывных массивов (элементы данных идут подряд в памяти).
Цель проверки счётчика ссылок — убедиться, что вы не используете этот массив как буфер для другого объекта Python, а затем не перевыделяете память. Однако счётчики ссылок могут увеличиваться и другими способами, поэтому, если вы уверены, что не делили память этого массива с другим объектом Python, вы можете безопасно установить
refcheckв False.Примеры
Уменьшение массива: массив уплощается (в порядке хранения данных в памяти), изменяется размер и форма:
>>> a = np.array([[0, 1], [2, 3]], order='C') >>> a.resize((2, 1)) >>> a array([[0], [1]])>>> a = np.array([[0, 1], [2, 3]], order='F') >>> a.resize((2, 1)) >>> a array([[0], [2]])Увеличение массива: как выше, но недостающие элементы заполняются нулями:
>>> b = np.array([[0, 1], [2, 3]]) >>> b.resize(2, 3) # new_shape parameter doesn't have to be a tuple >>> b array([[0, 1, 2], [3, 0, 0]])Ссылка на массив препятствует изменению размера…
>>> c = a >>> a.resize((1, 1)) Traceback (most recent call last): ... ValueError: cannot resize an array that has been referenced ...
Если
refcheckравно False:>>> a.resize((1, 1), refcheck=False) >>> a array([[0]]) >>> c array([[0]])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.core.defchararray.chararray.resize.html