numpy.ravel#

numpy.ravel(a, порядок='C')[источник]#

Возвращает непрерывный сглаженный массив.

Возвращается 1-D массив, содержащий элементы входных данных. Копия создаётся только при необходимости.

Начиная с NumPy 1.10, возвращаемый массив будет иметь тот же тип, что и входной массив. (например, для ввода маскированного массива будет возвращен маскированный массив)

Параметры:
aarray_like

Входной массив. Элементы в a читаются в порядке, указанном порядоки упакован как 1-D массив.

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

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

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

y — это непрерывный одномерный массив того же подтипа, что и a, с формой (a.size,). Обратите внимание, что матрицы обрабатываются особым образом для обратной совместимости, если a является матрицей, тогда y — это 1-D ndarray.

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

ndarray.flat

1-D итератор по массиву.

ndarray.flatten

1-D копия массива элементов в порядке row-major.

ndarray.reshape

Изменение формы массива без изменения его данных.

Примечания

В построчном, C-стиле порядка, в двух измерениях индекс строки изменяется медленнее всего, а индекс столбца — быстрее всего. Это можно обобщить на несколько измерений, где построчный порядок подразумевает, что индекс по первой оси изменяется медленнее всего, а по последней — быстрее всего. Обратное верно для столбцового, Fortran-стиля порядка индексов.

Когда представление желательно в как можно большем количестве случаев, arr.reshape(-1) может быть предпочтительнее. Однако, ravel поддерживает K в необязательном order аргумент, в то время как reshape не делает.

Примеры

Эквивалентно reshape(-1, order=order).

>>> import numpy as np
>>> x = np.array([[1, 2, 3], [4, 5, 6]])
>>> np.ravel(x)
array([1, 2, 3, 4, 5, 6])
>>> x.reshape(-1)
array([1, 2, 3, 4, 5, 6])
>>> np.ravel(x, order='F')
array([1, 4, 2, 5, 3, 6])

Когда order равно 'A', он сохранит порядок 'C' или 'F' массива:

>>> np.ravel(x.T)
array([1, 4, 2, 5, 3, 6])
>>> np.ravel(x.T, order='A')
array([1, 2, 3, 4, 5, 6])

Когда order равно 'K', он сохранит порядки, которые не являются ни 'C' ни 'F', но не будет обращать оси:

>>> a = np.arange(3)[::-1]; a
array([2, 1, 0])
>>> a.ravel(order='C')
array([2, 1, 0])
>>> a.ravel(order='K')
array([2, 1, 0])
>>> a = np.arange(12).reshape(2,3,2).swapaxes(1,2); a
array([[[ 0,  2,  4],
        [ 1,  3,  5]],
       [[ 6,  8, 10],
        [ 7,  9, 11]]])
>>> a.ravel(order='C')
array([ 0,  2,  4,  1,  3,  5,  6,  8, 10,  7,  9, 11])
>>> a.ravel(order='K')
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])