numpy.reshape()
Функция numpy.reshape() меняет форму массива без изменения данных. Общее число элементов должно остаться прежним. По возможности возвращается view — изменения отражаются в исходном массиве.
Сигнатура
numpy.reshape(a, newshape, order='C')
Параметры
a— входной массив.newshape— целое или кортеж новых размеров. Одно из значений можно указать как-1— NumPy вычислит его сам.order— порядок чтения/записи ('C','F','A').
Возвращает
ndarray новой формы (view или копия).
Пример 1. Из вектора в матрицу
import numpy as np
a = np.arange(12)
print(np.reshape(a, (3, 4)))
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Пример 2. Использование -1
import numpy as np
a = np.arange(12)
print(a.reshape(2, -1))
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
NumPy сам определит, что вторая ось = 6.
Пример 3. Распрямление через reshape(-1)
import numpy as np
M = np.array([[1, 2], [3, 4], [5, 6]])
print(M.reshape(-1))
[1 2 3 4 5 6]
Пример 4. Объединение R, G, B-каналов в пиксели
import numpy as np
# 6 значений: R0, G0, B0, R1, G1, B1
raw = np.array([255, 100, 50, 0, 200, 80], dtype=np.uint8)
pixels = raw.reshape(-1, 3)
print(pixels)
[[255 100 50]
[ 0 200 80]]
Пример 5. Order=“F“ — заполнение по столбцам
import numpy as np
a = np.arange(6)
print(np.reshape(a, (2, 3), order='F'))
[[0 2 4]
[1 3 5]]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.