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

Метод squeeze

Метод squeeze применяется к массиву NumPy и возвращает новый массив с удаленными размерностями, длина которых равна единице. Первым параметром метод принимает ось или кортеж осей, которые нужно удалить. Если оси не указаны, удаляются все оси с размером 1.

Синтаксис

arr.squeeze([axis])

Пример

Создадим одномерный массив и добавим лишнюю размерность с помощью reshape, затем удалим ее:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) arr_reshaped = arr.reshape(1, 5) print("Before squeeze:", arr_reshaped.shape) print(arr_reshaped) arr_squeezed = arr_reshaped.squeeze() print("After squeeze:", arr_squeezed.shape) print(arr_squeezed)

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

Before squeeze: (1, 5) [[1 2 3 4 5]] After squeeze: (5,) [1 2 3 4 5]

Пример

Удалим все размерности с размером 1 из двумерного массива:

import numpy as np arr = np.array([[[1, 2, 3]]]) print("Before squeeze:", arr.shape) print(arr) arr_squeezed = arr.squeeze() print("After squeeze:", arr_squeezed.shape) print(arr_squeezed)

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

Before squeeze: (1, 1, 3) [[[1 2 3]]] After squeeze: (3,) [1 2 3]

Пример

Удалим только указанную ось с размером 1, оставив остальные:

import numpy as np arr = np.array([[[1, 2], [3, 4]]]) print("Before squeeze:", arr.shape) print(arr) arr_squeezed = arr.squeeze(axis=0) print("After squeeze axis 0:", arr_squeezed.shape) print(arr_squeezed)

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

Before squeeze: (1, 2, 2) [[[1 2] [3 4]]] After squeeze axis 0: (2, 2) [[1 2] [3 4]]

Пример

Попробуем удалить ось, которая не имеет размер 1 - массив останется без изменений:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print("Before squeeze:", arr.shape) print(arr) arr_squeezed = arr.squeeze(axis=1) print("After squeeze:", arr_squeezed.shape) print(arr_squeezed)

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

Before squeeze: (2, 3) [[1 2 3] [4 5 6]] After squeeze: (2, 3) [[1 2 3] [4 5 6]]

Пример

Удалим несколько осей с размером 1, указав их в кортеже:

import numpy as np arr = np.array([[[[1, 2, 3, 4]]]]) print("Before squeeze:", arr.shape) print(arr) arr_squeezed = arr.squeeze(axis=(0, 1)) print("After squeeze axes 0 and 1:", arr_squeezed.shape) print(arr_squeezed)

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

Before squeeze: (1, 1, 1, 4) [[[[1 2 3 4]]]] After squeeze axes 0 and 1: (1, 4) [[1 2 3 4]]

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

  • метод reshape,
    который изменяет форму массива без изменения данных
  • функцию expand_dims,
    которая добавляет новые размерности в массив
  • метод ravel,
    который преобразует массив в одномерный
  • атрибут shape,
    который возвращает кортеж с размерами массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить