Константа newaxis
Константа np.newaxis служит для добавления новой оси к массиву. Она часто используется для изменения формы массивов при операциях трансляции, позволяя преобразовывать одномерные массивы в строки или столбцы. По сути, np.newaxis является псевдонимом для None и может использоваться в индексации массивов.
Синтаксис
arr[:, np.newaxis]
arr[np.newaxis, :]
Константа np.newaxis не принимает параметров. Она используется внутри квадратных скобок при индексации массива для указания места вставки новой оси.
Пример
Давайте преобразуем одномерный массив в массив-столбец (двумерный с одной колонкой):
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
arr_col = arr[:, np.newaxis]
print("Original array shape:", arr.shape)
print("Column array shape:", arr_col.shape)
print(arr_col)
Результат выполнения кода:
Original array shape: (5,)
Column array shape: (5, 1)
[[1]
[2]
[3]
[4]
[5]]
Пример
Теперь преобразуем одномерный массив в массив-строку (двумерный с одной строкой):
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
arr_row = arr[np.newaxis, :]
print("Original array shape:", arr.shape)
print("Row array shape:", arr_row.shape)
print(arr_row)
Результат выполнения кода:
Original array shape: (5,)
Row array shape: (1, 5)
[[1 2 3 4 5]]
Пример
Создадим двумерный массив и добавим ось для выполнения операции трансляции:
import numpy as np
arr_1d = np.array([1, 2, 3])
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
res = arr_1d[np.newaxis, :] + arr_2d
print("arr_1d as row:\n", arr_1d[np.newaxis, :])
print("arr_2d:\n", arr_2d)
print("Result of addition:\n", res)
Результат выполнения кода:
arr_1d as row:
[[1 2 3]]
arr_2d:
[[1 2 3]
[4 5 6]]
Result of addition:
[[2 4 6]
[5 7 9]]
Пример
Используем np.newaxis для добавления нескольких новых осей одновременно:
import numpy as np
arr = np.array([1, 2, 3])
arr_3d = arr[np.newaxis, :, np.newaxis]
print("Original shape:", arr.shape)
print("New shape:", arr_3d.shape)
print(arr_3d)
Результат выполнения кода:
Original shape: (3,)
New shape: (1, 3, 1)
[[[1]
[2]
[3]]]