Удаление размерности из массивов NumPy с помощью NumPy Squeeze
В этом учебном пособии вы узнаете, как использовать функцию NumPy squeeze(). Функция np.squeeze()
позволяет удалять одномерные записи из формы массива. Это позволяет лучше трансформировать массивы, форма которых не подходит для вашей работы.
Кратко, функция возвращает входной массив, из которого удалены все подмассивы, длина измерения которых равна 1.
К концу этого урока вы научитесь:
Как использовать функцию
squeeze()
в NumPy для уменьшения размерностиКак сжать только определенные оси в NumPy
Оглавление
Понимание синтаксиса функции
squeeze()
NumPyКак использовать
squeeze()
в массиве NumPy
Понимание синтаксиса функции сжатия() NumPy
Перед тем как рассмотреть, как использовать функцию np.squeeze()
, давайте взглянем на различные параметры этой функции. Прекрасно то, что функцию np.squeeze()
также можно применять как метод массива NumPy. В этом случае массив, конечно же, передавать не нужно.
Давайте рассмотрим параметры функции:
Мы видим из приведенного выше блока кода, что функция принимает два параметра:
Массив для сжатия, который должен быть похож на массив (например, список в Python)
Ось для сжатия, которая может быть
None
, целым числом или кортежем целых чисел.
Теперь, когда вы знакомы с синтаксисом функции np.squeeze()
, давайте рассмотрим простой пример использования этой функции.
Как использовать сжатие NumPy() в массиве NumPy
В этом разделе вы узнаете, как использовать функцию squeeze()
в NumPy на примере. Мы создадим массив, у которого будут дополнительные размерности с длиной 1. Давайте сначала создадим этот массив, используя функцию np.linspace()
и изменим его форму.
Мы можем проверить форму массива, используя атрибут .shape
, как показано ниже:
Мы видим, что в массиве присутствует потенциально излишнее измерение. Мы можем использовать функцию np.squeeze()
для удаления этого измерения из нашего массива. Давайте посмотрим, как это делается:
Изначально у нас был массив с формой (1, 2, 3)
. Когда мы выполнили операцию squeeze для массива, это удалило изначальное измерение с длиной 1.
Как использовать сжатие NumPy() только с некоторыми осями
В приведенном выше примере мы использовали функцию squeeze() из NumPy для безразличного удаления измерений длиной 1. По умолчанию NumPy будет передавать параметр axis=None
, который и будет делать именно это. Если нам не нужно такое поведение, мы можем изменить параметр axis=
, чтобы удалять только некоторые измерения.
Давайте создадим более сложный массив для работы:
Мы видим, что размеры массива имеют две оси длиной ровно 1. Давайте посмотрим, как мы можем удалить только одну из этих осей.
Давайте посмотрим, как мы можем использовать функцию np.squeeze()
для удаления третьей оси. Поскольку индексация в Python начинается с 0, нам нужно передать значение оси, равное 2.
Мы видим, что функция удалила только третью ось, но сохранила первую. **Важно отметить, однако, что если бы мы попытались удалить ось, длина которой не была равна 1, была бы вызвана ошибка
Заключение
В этом руководстве вы научились использовать функцию NumPy squeeze()
для уменьшения размерности массива. Функция удаляет оси длиной 1, которые могут мешать анализу данных. Сначала вы научились понимать синтаксис функции и ее два параметра. Затем вы узнали, как использовать функцию на примере. Наконец, вы научились использовать функцию для удаления только определенных осей.
Дополнительные ресурсы
Чтобы узнать больше о смежных темах, ознакомьтесь с учебными пособиями ниже:
NumPy Pad: использование
np.pad()
для заполнения массивов и матрицnp.argmax()
: Как использовать NumPy ArgmaxПлитка NumPy для упорядочения массивов
NumPy для науки о данных в Python
Last updated