NumPy clip(): Ограничьте значения массива минимальным и максимальным значениями

Массивы NumPy являются неотъемлемой частью большинства рабочих процессов анализа данных и науки о данных. Вам может потребоваться ограничить массивы так, чтобы они содержали значения только в определенном минимальном и максимальном диапазоне – именно это и позволяет сделать функция NumPy clip. В этом учебном пособии вы узнаете, как ограничить значения массива NumPy с помощью функции .clip(). Функция позволяет перезаписать любые выбросы значения.

К концу этого урока вы научитесь:

  • Как работает функция NumPy.clip()

  • Как использовать функцию клипа NumPy для ограничения минимального и максимального значений

  • Как обрезать массивы NumPy на месте

Оглавление

Понимание функции клипа NumPy

Что делает функция NumPy clip()?

Функция clip() в NumPy позволяет ограничить значения в массиве. Это дает возможность установить нижний и/или верхний предел для значений массива. Любое значение, выходящее за пределы установленного интервала, будет приведено к его границам.

Прежде чем перейти к тому, как использовать функцию .clip() в NumPy, давайте рассмотрим структуру этой функции. Важно понимать, какие параметры доступны и какие аргументы заданы по умолчанию.

# Понимание метода .clip() библиотеки NumPy
import numpy as np

arr.clip(a, a_min, a_max, out=None)

Метод .clip() применяется к массиву и обрезает его значения до указанных минимального (a_min) и максимального (a_max). Если какое-либо значение в массиве меньше a_min, оно заменяется на a_min, а если больше a_max, то на a_max.

Метод .clip() возвращает массив с обрезанными значениями.

Мы видим, что метод имеет четыре параметра, из которых два обязательны. В таблице ниже представлено описание параметров метода clip библиотеки NumPy:

ПараметрОписаниеАргумент по умолчаниюПринятые значения

a=

Массив, содержащий элементы для обрезки

N/A

array-like

a_min=

Минимальное значение. Может быть None, если a_max не имеет значения None

None

array-like or None

a_max=

Максимальное значение. Может быть None, если a_min не None

None

array-like or None

out=

Выходной массив.

None

ndarray

В следующем разделе вы узнаете, как ограничить значения массива NumPy нижней границей.

Ограничение минимальных значений массива NumPy

В этом разделе вы научитесь ограничивать значения массива NumPy, устанавливая минимальное значение. Это позволит обрезать другие значения и возвращать минимальную границу для любого значения, которое ниже этого значения. Давайте создадим массив, содержащий значения от 0 до 10, и обрежем любые значения ниже 3:

# Ограничение массивов NumPy снизу
import numpy as np

arr = np.arange(11)
clipped = np.clip(a=arr, a_min=3, a_max=None)
print(clipped)

# Returns: [ 3  3  3  3  4  5  6  7  8  9 10]

Этот код обрезает значения в массиве arr так, чтобы они не были меньше 3, используя метод .clip() с параметром a_min=3.

Давайте разберем, что мы сделали в приведенном выше коде:

  1. Мы импортировали NumPy, используя псевдоним

  2. Мы создали массив с помощью функции arange(), охватывающий значения от 0 до 10.

  3. Мы создали новый массив, заменив все значения меньше 3 на 3.

Функция clip() в NumPy требует, чтобы хотя бы один из аргументов a_min или a_max не был None. В следующем разделе вы научитесь ограничивать массив с использованием максимальных значений.

Ограничение максимальных значений массива NumPy

Аналогично, вы можете обрезать массив NumPy, установив значение для параметра a_max=. Когда этот параметр установлен, вы можете установить параметр a_min= в значение None, что означает отсутствие нижней границы. Давайте используем тот же массив, содержащий значения от 0 до 10, и обрежем любые значения выше 7.

# Ограничение массивов NumPy сверху
import numpy as np

arr = np.arange(11)
clipped = np.clip(a=arr, a_min=None, a_max=7)
print(clipped)

# Returns: [0 1 2 3 4 5 6 7 7 7 7]

Этот код обрезает значения в массиве arr так, чтобы они не были больше или равны 7, используя метод .clip() с параметром a_max=7.

В указанном выше блоке кода мы использовали максимальное значение ограничения, равное 7. Это означает, что любое значение, превышающее 7, будет заменено на 7.

Ограничение минимального и максимального значений массива NumPy

Функция clip() в NumPy позволяет задать как нижние, так и верхние границы для обрезки значений, что дает возможность удалить экстремальные значения из массива. Это можно сделать, передав значения в параметры a_min и a_max.

Давайте посмотрим, как мы можем заменить значения меньше 3 и больше 7 на их соответствующие границы.

# Ограничение массивов NumPy сверху и снизу
import numpy as np

arr = np.arange(11)
clipped = np.clip(a=arr, a_min=3, a_max=7)
print(clipped)

# Returns: [3 3 3 3 4 5 6 7 7 7 7]

Этот код обрезает значения в массиве arr так, чтобы они находились в диапазоне от 3 до 7, используя метод .clip() с параметрами a_min=3 и a_max=7.

В представленном выше блоке кода мы задали как нижнюю, так и верхнюю границу для обрезки значений. Это привело к обрезке значений на обоих концах массива.

Обрезка массивов NumPy на месте

В этом заключительном разделе вы узнаете, как обрезать массивы NumPy на месте. В предыдущих разделах мы обрезали массивы, присваивая их новой переменной. Однако мы также можем использовать параметр out=, чтобы указать, к какому массиву должен быть присвоен наш обрезанный массив.

Чтобы обрезать массив NumPy на месте, вы можете просто указать параметр out= как сам массив. Это означает, что вам не нужно переназначать массив другой переменной.

# Обрезка массивов вместо того, чтобы создавать новый с помощью метода clip() библиотеки NumPy
import numpy as np

arr = np.arange(11)
np.clip(a=arr, a_min=3, a_max=7, out=arr)
print(arr)

# Returns: [3 3 3 3 4 5 6 7 7 7 7]

Этот код обрезает значения в массиве arr так, чтобы они находились в диапазоне от 3 до 7, непосредственно изменяя сам массив arr, с использованием метода .clip() с параметрами a_min=3, a_max=7 и out=arr.

В приведенном выше блоке кода мы передали массив arr в параметр out=. Также обратите внимание, что мы не присваивали результат другой переменной напрямую. Это позволяет нам обрезать массив NumPy на месте.

Заключение

В этом уроке вы научились использовать метод clip библиотеки NumPy для ограничения значений в массиве NumPy заданными минимальными и максимальными пределами. Сначала вы узнали о разных параметрах и аргументах по умолчанию функции np.clip(). Затем вы научились устанавливать нижний и верхний пределы массива. Наконец, вы научились обрезать массив NumPy на месте.

Дополнительные ресурсы

Чтобы узнать больше о смежных темах, ознакомьтесь с нижеперечисленными руководствами:

Last updated