> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/uchebniki-po-pandas-i-numpy/numpy/numpy-clip-ogranichte-znacheniya-massiva-minimalnym-i-maksimalnym-znacheniyami.md).

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

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

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

* Как работает функция NumPy`.clip()`
* Как использовать функцию клипа NumPy для ограничения минимального и максимального значений
* Как обрезать массивы NumPy на месте

Оглавление

* [Понимание функции клипа NumPy](#ponimanie-funkcii-klipa-numpy)
* [Ограничение минимальных значений массива NumPy](#ogranichenie-minimalnykh-znachenii-massiva-numpy)
* [Ограничение максимальных значений массива NumPy](#ogranichenie-maksimalnykh-znachenii-massiva-numpy)
* [Ограничение минимального и максимального значений массива NumPy](#ogranichenie-minimalnogo-i-maksimalnogo-znachenii-massiva-numpy)
* [Обрезка массивов NumPy на месте](#obrezka-massivov-numpy-na-meste)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

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

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

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

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

```python
# Понимание метода .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:

```python
# Ограничение массивов 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.

```python
# Ограничение массивов 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.`&#x20;

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

```python
# Ограничение массивов 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=` как сам массив. Это означает, что вам не нужно переназначать массив другой переменной.

```python
# Обрезка массивов вместо того, чтобы создавать новый с помощью метода 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 на месте.

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

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

* [Индексирование и нарезка массивов NumPy: полное руководство](/neural/uchebniki-po-pandas-i-numpy/numpy/razdelenie-numpy-razdelenie-massiva-numpy-na-chasti.md)
* [NumPy где: обрабатывать элементы массива условно](/neural/uchebniki-po-pandas-i-numpy/numpy/numpy-where-uslovnaya-obrabotka-elementov-massiva.md)
* [np.argmax(): Как использовать NumPy Argmax](/neural/uchebniki-po-pandas-i-numpy/numpy/np.argmax-kak-ispolzovat-numpy-argmax.md)
* [Как нормализовать массивы NumPy](/neural/uchebniki-po-pandas-i-numpy/numpy/kak-normalizovat-massivy-numpy-minimalnoe-maksimalnoe-masshtabirovanie-z-ocenka-l2.md)
* [Клип NumPy: официальная документация](https://numpy.org/doc/stable/reference/generated/numpy.clip.html)
