Spec-Zone.ru › NumPy 1.16

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API