Spec-Zone.ru › NumPy 1.10

numpy.ndarray.resize

ndarray.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.ndarray.resize.html

Spec-Zone.ru

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