numpy.ravel
numpy.ravel(a, order='C')
Функция ravel() возвращает сжатый до одной оси массив.
-
- а - подобный массиву объект
- Массив любой формы и размерности, который будет сжат до одной оси. Элементы в a перебираются в порядке указанном в параметре order.
- order - 'K', 'A', 'C' или 'F' (необязательный)
- Этот параметр определяет в каком порядке массивы должны храниться в памяти: строчном C-стиле или столбчатом стиле Fortran. Если object не является массивом NumPy, то созданный массив будет находиться в памяти в строковом С порядке, если указать флаг 'F', то будет храниться в столбчатом порядке 'Fortran'. Если object - это массив NumPy, то флаг 'K' либо сохраняет порядок исходного массива либо устанавливает самый близкий по структуре; флаг 'A' установит макет памяти выходного массива в 'F' если массив
a
является смежным со столбчатым стилем Fortran, в противном случае макет памяти будет установлен в 'C'. По умолчанию флаг установлен в значение 'C'.
-
- array_like - подобный массиву объект
- Сжатый до одной оси массив a.
Замечание
Параметр order
по умолчанию установлен в значение C т.е. чтение данных исходного массива выполняется "построчно" (индекс первой оси меняется медленнее чем последней). Если исходный массив организован в памяти в стиле Fortran, при котором чтение данных массива выполняется "по столбцам" (индекс первой оси меняется быстрее чем последней), а order = 'С'
, то данные которые должны быть прочитаны "по столбцам" будут считаны "построчно", что приведет к другому расположению элементов в сжатом массиве.
Для сжатия массивов до одной оси можно воспользоваться a.reshape(-1)
или numpy.reshape(a, -1)
.
Примеры
>>> import numpy as np
>>>
>>> a = np.arange(9)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>> b = a.reshape(3, 3)
>>> b
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>>
>>> np.ravel(b)
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>> b.reshape(-1)
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>> np.ravel(b, order = 'C')
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>> np.ravel(b, order = 'F')
array([0, 3, 6, 1, 4, 7, 2, 5, 8])
>>>
>>>
>>> b
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>>
>>> c = b.T
>>> c
array([[0, 3, 6],
[1, 4, 7],
[2, 5, 8]])
>>>
>>> np.ravel(c)
array([0, 3, 6, 1, 4, 7, 2, 5, 8])
>>>
>>> np.ravel(c, order = 'C')
array([0, 3, 6, 1, 4, 7, 2, 5, 8])
>>>
>>> np.ravel(c, order = 'F')
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>> np.ravel(c, order = 'A')
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>>
>>>
>>> a = np.arange(12).reshape(2, 3, 2)
>>> a
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]]])
>>>
>>> a.ravel()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>>
>>> a.ravel(order = 'F')
array([ 0, 6, 2, 8, 4, 10, 1, 7, 3, 9, 5, 11])