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