Функция reshape
Функция reshape изменяет форму массива
NumPy, сохраняя исходные данные. Первым
параметром функция принимает новый кортеж
размерностей. Вторым параметром можно
передать порядок заполнения элементов
(по строкам или по столбцам).
Синтаксис
np.reshape(arr, newshape, [order])
Пример
Давайте изменим форму одномерного массива с шестью элементами на двумерный размером 2 на 3:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = np.reshape(arr, (2, 3))
print(res)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Пример
Теперь изменим форму массива на трёхмерный размером 2 на 3 на 1:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = np.reshape(arr, (2, 3, 1))
print(res)
Результат выполнения кода:
[[[1]
[2]
[3]]
[[4]
[5]
[6]]]
Пример
Метод reshape можно вызывать
непосредственно от объекта массива:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = arr.reshape((3, 2))
print(res)
Результат выполнения кода:
[[1 2]
[3 4]
[5 6]]
Пример
Используем -1 для автоматического вычисления размера одной из размерностей:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = arr.reshape((2, -1))
print(res)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Пример
Изменим двумерный массив размером 3 на 4 в одномерный:
import numpy as np
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
res = arr.reshape((-1))
print(res)
Результат выполнения кода:
[ 1 2 3 4 5 6 7 8 9 10 11 12]
Пример
Поменяем порядок заполнения на столбцовый
с помощью параметра order со значением
'F' (Fortran-порядок):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
res = arr.reshape((2, 3), order='F')
print(res)
Результат выполнения кода:
[[1 3 5]
[2 4 6]]
Смотрите также
-
функцию
ravel,
которая преобразует многомерный массив в одномерный -
функцию
squeeze,
которая удаляет размерности с размером 1 из массива -
функцию
expand_dims,
которая добавляет новую размерность в массив -
функцию
transpose,
которая меняет порядок размерностей массива