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

Удаление единичных осей в NumPy

Убрать оси длины 1 позволяет функция squeeze. Она удаляет из формы все оси, где только одна ячейка. Числа в массиве при этом не меняются.

Создадим таблицу из одной строки и трёх столбцов. Её форма содержит единицу в первой оси. Выведем форму до и после удаления таких осей:

import numpy as np block = np.array([[1, 2, 3]]) print(np.shape(block)) # выведет (1, 3) flat = np.squeeze(block) print(flat) # выведет [1 2 3] print(np.shape(flat)) # выведет (3,)

Лишняя ось может стоять и в другом месте. Уберём её у столбца из одного столбца:

import numpy as np col = np.array([[10], [20], [30]]) print(np.shape(col)) # выведет (3, 1) row = np.squeeze(col) print(row) # выведет [10 20 30] print(np.shape(row)) # выведет (3,)

Если единичных осей несколько, убираются все сразу:

import numpy as np box = np.array([[[1, 2, 3]]]) print(np.shape(box)) # выведет (1, 1, 3) plain = np.squeeze(box) print(np.shape(plain)) # выведет (3,)

Создайте массив [[4, 5, 6, 7]]. Уберите оси длины 1 и выведите форму результата.

Создайте массив [[1], [2], [3]]. Уберите лишние оси и выведите полученный одномерный ряд.

Создайте массив формы (2, 1, 3) из нулей. Выведите форму до и после удаления осей длины 1.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить