Spec-Zone.ru › NumPy 1.21

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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.char.chararray.resize.html

Spec-Zone.ru

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