Spec-Zone.ru › NumPy 1.10

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.10.1/reference/generated/numpy.matrix.resize.html

Spec-Zone.ru

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