Spec-Zone.ru › NumPy 2.0

numpy.char.chararray.resize

метод

char.chararray.resize(new_shape, refcheck=True)

Изменение формы и размера массива на месте.

Параметры:
new_shapeкортеж целых чисел или n целых чисел

Форма изменённого массива.

refcheckbool, необязательно

Если 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 references or is referenced ...

Если refcheck имеет значение False:

>>> a.resize((1, 1), refcheck=False)
>>> a
array([[0]])
>>> c
array([[0]])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.char.chararray.resize.html

Spec-Zone.ru

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