РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
32 of 541 menu

Функция expand_dims

Функция expand_dims добавляет новую ось (размерность) в массив NumPy на указанную позицию. Первым параметром функция принимает исходный массив, вторым параметром - позицию для вставки новой оси. Функция не изменяет исходный массив, а возвращает новый с добавленной размерностью.

Синтаксис

np.expand_dims(arr, axis)

Пример

Давайте создадим одномерный массив и добавим новую ось на позицию 0 (перед существующей размерностью):

import numpy as np arr = np.array([1, 2, 3, 4, 5]) res = np.expand_dims(arr, axis=0) print("Original shape:", arr.shape) print("New shape:", res.shape) print(res)

Результат выполнения кода:

Original shape: (5,) New shape: (1, 5) [[1 2 3 4 5]]

Пример

Теперь добавим новую ось на позицию 1 (после существующей размерности), чтобы получить массив формы (5, 1):

import numpy as np arr = np.array([1, 2, 3, 4, 5]) res = np.expand_dims(arr, axis=1) print("Original shape:", arr.shape) print("New shape:", res.shape) print(res)

Результат выполнения кода:

Original shape: (5,) New shape: (5, 1) [[1] [2] [3] [4] [5]]

Пример

Функция работает и с многомерными массивами. Добавим новую ось в двумерный массив на позицию 0:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = np.expand_dims(arr, axis=0) print("Original shape:", arr.shape) print("New shape:", res.shape) print(res)

Результат выполнения кода:

Original shape: (2, 3) New shape: (1, 2, 3) [[[1 2 3] [4 5 6]]]

Пример

Можно использовать отрицательные индексы для указания позиции новой оси. Например, axis=-1 добавит ось в самом конце:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) res = np.expand_dims(arr, axis=-1) print("Original shape:", arr.shape) print("New shape:", res.shape) print(res)

Результат выполнения кода:

Original shape: (5,) New shape: (5, 1) [[1] [2] [3] [4] [5]]

Пример

Используем отрицательный индекс для добавления оси в середину двумерного массива. axis=-1 добавит новую размерность в конце:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = np.expand_dims(arr, axis=-1) print("Original shape:", arr.shape) print("New shape:", res.shape) print(res)

Результат выполнения кода:

Original shape: (2, 3) New shape: (2, 3, 1) [[[1] [2] [3]] [[4] [5] [6]]]

Пример

Функция expand_dims часто используется для подготовки данных к операциям, требующим определённой размерности, например, для трансляции (broadcasting):

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([10, 20, 30]) arr1_expanded = np.expand_dims(arr1, axis=1) res = arr1_expanded + arr2 print("arr1 shape:", arr1.shape) print("arr2 shape:", arr2.shape) print("arr1 expanded shape:", arr1_expanded.shape) print("Result shape:", res.shape) print(res)

Результат выполнения кода:

arr1 shape: (5,) arr2 shape: (3,) arr1 expanded shape: (5, 1) Result shape: (5, 3) [[11 21 31] [12 22 32] [13 23 33] [14 24 34] [15 25 35]]

Смотрите также

  • функцию squeeze,
    которая удаляет оси с размерностью 1
  • функцию atleast_2d,
    которая преобразует массив как минимум в двумерный
  • функцию atleast_3d,
    которая преобразует массив как минимум в трёхмерный
  • функцию reshape,
    которая изменяет форму массива без изменения данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить