Spec-Zone.ru › NumPy 1.11

numpy.matrix.resize

matrix.resize(new_shape, refcheck=True)

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

Параметры:

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

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

refcheck : bool, необязательно

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

Возвращает:

None

Исключения:

ValueError

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

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 has been referenced ...

Если refcheck равно False:

>>> a.resize((1, 1), refcheck=False)
>>> a
array([[0]])
>>> c
array([[0]])

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.matrix.resize.html

Spec-Zone.ru

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