Spec-Zone.ru › NumPy 1.12

numpy.matrix.resize

matrix.resize(new_shape, refcheck=True)

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

Параметры:

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

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

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

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

Возвращает:

None

Возможные исключения:

ValueError

Если массив не владеет своими данными или существуют ссылки или представления на них, и память данных должна быть изменена. Только 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 has been referenced ...

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

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

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

Spec-Zone.ru

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