Spec-Zone.ru › NumPy 1.11

numpy.core.defchararray.chararray.resize

chararray.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.core.defchararray.chararray.resize.html

Spec-Zone.ru

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