Spec-Zone.ru › NumPy 1.17

numpy.ndarray.resize

метод

ndarray.resize(new_shape, refcheck=True)

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

Параметры:
new_shape : tuple of ints, or n ints

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

refcheck : bool, optional

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

Возвращает:
None
Исключения:
ValueError

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

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

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

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.ndarray.resize.html

Spec-Zone.ru

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