Spec-Zone.ru › NumPy 1.15

numpy.reshape

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

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

Параметры:
a : array_like

Массив, который нужно преобразовать.

newshape : int or tuple of ints

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

order : {‘C’, ‘F’, ‘A’}, optional

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

Возвращает:
reshaped_array : ndarray

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

См. также

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

Примечания

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

>>> a = np.zeros((10, 2))
# A transpose makes 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]])

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

Spec-Zone.ru

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