numpy.reshape#

numpy.reshape(a, /, shape, порядок='C', *, copy=None)[источник]#

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

Параметры:
aarray_like

Массив для изменения формы.

shapeint или кортеж ints

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

порядок{‘C’, ‘F’, ‘A’}, опционально

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

copybool, необязательно

Если True, то данные массива копируются. Если None, копия будет создана только если это требуется order. Для False вызывает ValueError если копирование невозможно избежать. По умолчанию: None.

Возвращает:
reshaped_arrayndarray

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

Смотрите также

ndarray.reshape

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

Примечания

Не всегда возможно изменить форму массива без копирования данных.

The 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]])

Примеры

>>> import numpy as np
>>> 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]])