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.