Spec-Zone.ru › NumPy 2.0

numpy.matrix.resize

метод

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

Spec-Zone.ru

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