Spec-Zone.ru › NumPy 1.15

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.15.4/reference/generated/numpy.core.defchararray.chararray.resize.html

Spec-Zone.ru

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