Spec-Zone.ru › NumPy 1.21

numpy.chararray.resize

метод

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.chararray.resize.html

Spec-Zone.ru

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