Spec-Zone.ru › NumPy 1.10

numpy.reshape

numpy.reshape(a, newshape, order='C') [source]

Преобразует массив в новый вид без изменения данных.

Параметры:

a : array_like

Массив, подлежащий преобразованию.

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

Новая форма должна быть совместима с исходной формой. Если целое число, то результатом будет одномерный массив указанной длины. Один размер формы может быть -1. В этом случае значение выводится из длины массива и оставшихся размеров.

order : {‘C’, ‘F’, ‘A’}, необязательно

Читает элементы a с использованием этого порядка индексов и помещает элементы в преобразованный массив в этом порядке индексов. ‘C’ означает чтение/запись элементов с использованием порядком индексов языка C, где индекс последней оси изменяется быстрее, а индекс первой оси изменяется медленнее. ‘F’ означает чтение/запись элементов с использованием порядком индексов языка Fortran, где первый индекс изменяется быстрее, а последний индекс изменяется медленнее. Обратите внимание, что опции ‘C’ и ‘F’ не учитывают расположение памяти в базовом массиве и относятся только к порядку индексирования. ‘A’ означает чтение/запись элементов в порядке индексов языка Fortran, если a является Fortran contiguous в памяти, в противном случае – в порядке индексов языка C.

Возвращает:

reshaped_array : ndarray

Это будет новый объект представления, если возможно; в противном случае – копия. Нет гарантии расположения памяти (C- или Fortran- contiguous) возвращаемого массива.

См. также

ndarray.reshape
Эквивалентный метод.

Примечания

Не всегда возможно изменить форму массива без копирования данных. Если вы хотите, чтобы при копировании данных было выброшено исключение, вы должны присвоить новую форму атрибуту формы массива:

>>> a = np.zeros((10, 2))
# A transpose make the array non-contiguous
>>> b = a.T
# Taking a view makes it possible to modify the shape without modifying
# the initial object.
>>> c = b.view()
>>> c.shape = (20)
AttributeError: incompatible shape for a non-contiguous array

Ключевое слово order определяет порядок индексов как для выборки значений из a, так и для размещения значений в выходном массиве. Например, предположим, что у вас есть массив:

>>> a = np.arange(6).reshape((3, 2))
>>> a
array([[0, 1],
       [2, 3],
       [4, 5]])

Можно представить преобразование формы как сначала разворачивание массива (используя заданный порядок индексов), а затем вставку элементов из развернутого массива в новый массив, используя тот же порядок индексов, который использовался для разворачивания.

>>> np.reshape(a, (2, 3)) # C-like index ordering
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.reshape(np.ravel(a), (2, 3)) # equivalent to C ravel then C reshape
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.reshape(a, (2, 3), order='F') # Fortran-like index ordering
array([[0, 4, 3],
       [2, 1, 5]])
>>> np.reshape(np.ravel(a, order='F'), (2, 3), order='F')
array([[0, 4, 3],
       [2, 1, 5]])

Примеры

>>> a = np.array([[1,2,3], [4,5,6]])
>>> np.reshape(a, 6)
array([1, 2, 3, 4, 5, 6])
>>> np.reshape(a, 6, order='F')
array([1, 4, 2, 5, 3, 6])
>>> np.reshape(a, (3,-1))       # the unspecified value is inferred to be 2
array([[1, 2],
       [3, 4],
       [5, 6]])

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.reshape.html

Spec-Zone.ru

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