Spec-Zone.ru › NumPy 1.13

numpy.ndarray.resize

ndarray.resize(new_shape, refcheck=True)

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

Параметры:

new_shape : кортеж целых чисел или n целых чисел

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

refcheck : bool, необязательно

Если 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 has been referenced ...

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

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

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.ndarray.resize.html

Spec-Zone.ru

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