numpy.recarray.resize#

метод

recarray.изменить размер(new_shape, /, *, refcheck=True) a.resize(*new_shape, refcheck=True)#
recarray.изменить размер(*new_shape, refcheck=True) None

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

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

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

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

Если False, подсчет ссылок не будет проверяться. По умолчанию True.

Возвращает:
None
Вызывает:
ValueError

Если a не владеет собственными данными или существуют ссылки или представления на них, и память данных должна быть изменена. Только для PyPy: всегда вызывает исключение, если память данных должна быть изменена, поскольку нет надежного способа определить, существуют ли ссылки или представления на нее.

Оптимальный

Если порядок указан аргумент ключевого слова. Это поведение является ошибкой в NumPy.

Смотрите также

resize

Возвращает новый массив с указанной формой.

Примечания

Это перераспределяет пространство для области данных при необходимости.

Только непрерывные массивы (элементы данных расположены последовательно в памяти) могут быть изменены в размере.

Цель проверки счетчика ссылок — убедиться, что вы не используете этот массив в качестве буфера для другого объекта Python и затем не перераспределяете память. Однако счетчики ссылок могут увеличиваться другими способами, поэтому если вы уверены, что не делили память этого массива с другим объектом Python, то можете безопасно установить refcheck в False.

Примеры

Сжатие массива: массив сглаживается (в порядке хранения данных в памяти), изменяется размер и преобразуется форма:

>>> import numpy as np
>>> 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]])