Spec-Zone.ru › NumPy 1.20

numpy.matrix.resize

метод

matrix.resize(new_shape, refcheck=True)

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

Параметры
new_shapetuple of ints, or n ints

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

refcheckbool, optional

Если 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.matrix.resize.html

Spec-Zone.ru

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