numpy.ravel()

Функция numpy.ravel() превращает многомерный массив в одномерный. В отличие от flatten(), по возможности возвращает view (без копирования), а не копию — это быстрее и экономит память.

Сигнатура

numpy.ravel(a, order='C')

Параметры

  • a — входной массив.

  • order — порядок обхода: 'C' (по строкам), 'F' (по столбцам), 'A' (как хранится), 'K' (как в памяти).

Возвращает

Одномерный ndarray. По возможности — view на исходные данные.

Пример 1. Базовое распрямление

import numpy as np

M = np.array([[1, 2, 3],
              [4, 5, 6]])
print(np.ravel(M))
[1 2 3 4 5 6]

Пример 2. Порядок по столбцам („F“)

import numpy as np

M = np.array([[1, 2, 3],
              [4, 5, 6]])
print(np.ravel(M, order='F'))
[1 4 2 5 3 6]

Сначала первый столбец, затем второй, и т.д.

Пример 3. Это view — изменения отражаются

import numpy as np

M = np.array([[1, 2], [3, 4]])
v = M.ravel()
v[0] = 99
print(M)
[[99  2]
 [ 3  4]]

Если нужна независимая копия — используйте flatten().

Пример 4. Сериализация изображения для записи в файл

import numpy as np

img = np.array([[10, 20, 30],
                [40, 50, 60]], dtype=np.uint8)
print(img.ravel().tolist())
[10, 20, 30, 40, 50, 60]

Пример 5. Трёхмерный массив

import numpy as np

cube = np.arange(8).reshape(2, 2, 2)
print(np.ravel(cube))
[0 1 2 3 4 5 6 7]

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.