Spec-Zone.ru › NumPy 1.11

numpy.recarray.resize

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

Spec-Zone.ru

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