Spec-Zone.ru › NumPy 1.21

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

Spec-Zone.ru

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