Как убрать размерность с помощью numpy: простые способы
Чтобы убрать размерность в NumPy, вы можете использовать функцию np.squeeze(). Она удаляет все размерности из массива, которые имеют размер 1.
import numpy as np
# Создание массива с размерностью (1, 3, 1)
arr = np.array([[[1], [2], [3]]])
# Удаление размерности
arr_squeezed = np.squeeze(arr)
print(arr_squeezed.shape) # Результат: (3,)
В этом примере массив arr
имеет размерность (1, 3, 1). Используя np.squeeze()
, мы удаляем размерность, которая имеет размер 1, и получаем новый массив arr_squeezed
с размерностью (3,).
Детальный ответ
Удаление размерности с помощью библиотеки NumPy
Когда мы работаем с многомерными массивами в Python, иногда возникает потребность убрать лишнюю размерность и привести массив к более простому формату. Часто для этой цели используется библиотека NumPy, которая предоставляет мощные инструменты для манипуляции с данными.
Одним из распространенных сценариев является удаление размерности, когда массив имеет размерность 1. Давайте рассмотрим несколько способов, как можно удалить размерность с помощью NumPy.
Метод numpy.squeeze()
Метод numpy.squeeze()
позволяет удалять одномерные оси из массива. Он возвращает массив с удаленными размерностями, если они имели размерность 1.
Пример:
import numpy as np
# Создаем массив с размерностью 1
arr = np.array([1, 2, 3])
# Печатаем размерность и форму массива до применения метода squeeze
print("Размерность до применения метода squeeze:", arr.ndim)
print("Форма до применения метода squeeze:", arr.shape)
# Удаляем размерность с помощью метода squeeze
arr_squeezed = np.squeeze(arr)
# Печатаем размерность и форму массива после применения метода squeeze
print("Размерность после применения метода squeeze:", arr_squeezed.ndim)
print("Форма после применения метода squeeze:", arr_squeezed.shape)
В этом примере мы создаем массив arr
размерности 1 и выводим его размерность и форму до применения метода squeeze. Затем мы применяем метод squeeze и выводим размерность и форму массива после применения метода. Результатом будет массив без лишней размерности.
Использование индексации
Еще один способ удаления размерности - использование индексации. Мы можем выбрать все элементы массива по определенной оси и присвоить их новой переменной.
Пример:
import numpy as np
# Создаем массив с размерностью 2
arr = np.array([[1], [2], [3]])
# Печатаем размерность и форму массива до удаления размерности
print("Размерность до удаления размерности:", arr.ndim)
print("Форма до удаления размерности:", arr.shape)
# Удаляем размерность с помощью индексации
arr_resized = arr[:, 0]
# Печатаем размерность и форму массива после удаления размерности
print("Размерность после удаления размерности:", arr_resized.ndim)
print("Форма после удаления размерности:", arr_resized.shape)
В этом примере мы создаем массив arr
размерностью 2 и выводим его размерность и форму до удаления размерности. Затем мы используем индексацию [:, 0]
для выбора всех элементов по оси 0 и присваиваем их новой переменной arr_resized
. Результатом будет массив с удаленной лишней размерностью.
Метод numpy.reshape()
Метод numpy.reshape()
позволяет изменить форму массива без изменения его данных. Этот метод также может быть использован для удаления размерности, если одна из размерностей имеет размерность 1.
Пример:
import numpy as np
# Создаем массив с размерностью 2
arr = np.array([[1], [2], [3]])
# Печатаем размерность и форму массива до изменения формы
print("Размерность до изменения формы:", arr.ndim)
print("Форма до изменения формы:", arr.shape)
# Изменяем форму массива с помощью метода reshape
arr_reshaped = np.reshape(arr, (3,))
# Печатаем размерность и форму массива после изменения формы
print("Размерность после изменения формы:", arr_reshaped.ndim)
print("Форма после изменения формы:", arr_reshaped.shape)
В этом примере мы создаем массив arr
размерностью 2 и выводим его размерность и форму до изменения формы. Затем мы используем метод reshape
для изменения формы массива, передавая новую форму в виде кортежа (3,)
. Результатом будет массив без лишней размерности.
Заключение
В этой статье мы рассмотрели три способа удаления размерности с помощью библиотеки NumPy. Метод numpy.squeeze()
позволяет удалить оси с размерностью 1, метод индексации позволяет выбрать все элементы по определенной оси и создать новый массив без лишней размерности, а метод numpy.reshape()
позволяет изменить форму массива и удалить лишнюю размерность.
Удаление размерности может быть полезным, когда мы работаем с данными разной структуры и хотим привести их к одному формату. Надеюсь, эта статья была полезной и помогла вам разобраться в том, как убрать размерность с помощью библиотеки NumPy.