Spec-Zone.ru › NumPy 2.0

numpy.ndarray.resize

метод

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

Spec-Zone.ru

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