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

Функция piecewise

Функция piecewise применяется к массиву поэлементно и позволяет выбрать значение для каждого элемента на основе заданных условий. Первым параметром передаётся входной массив, вторым - список условий, третьим - список соответствующих функций или значений. Если ни одно условие не выполняется, используется значение по умолчанию 0.

Синтаксис

np.piecewise(x, condlist, funclist)

Пример

Применим функцию к одномерному массиву, заменив отрицательные значения на 0, а положительные оставив без изменений:

import numpy as np arr = np.array([-2, -1, 0, 1, 2]) res = np.piecewise(arr, [arr < 0], [0]) print(res)

Результат выполнения кода:

[0 0 0 1 2]

Пример

Заменим отрицательные числа на 0, положительные на 1, а нулевые оставим без изменений:

import numpy as np arr = np.array([-2, -1, 0, 1, 2]) res = np.piecewise( arr, [arr < 0, arr > 0], [0, 1] ) print(res)

Результат выполнения кода:

[0 0 0 1 1]

Пример

Используем функции вместо скалярных значений: для отрицательных элементов вычислим квадрат, для положительных - модуль:

import numpy as np arr = np.array([-3, -2, -1, 0, 1, 2, 3]) res = np.piecewise( arr, [arr < 0, arr > 0], [lambda x: x**2, np.abs] ) print(res)

Результат выполнения кода:

[9 4 1 0 1 2 3]

Пример

Работа с двумерным массивом: элементы меньше 0 заменим на -1, больше 0 - на 1, нули оставим без изменений:

import numpy as np arr = np.array([[-2, -1, 0], [1, 2, 3]]) res = np.piecewise( arr, [arr < 0, arr > 0], [-1, 1] ) print(res)

Результат выполнения кода:

[[-1 -1 0] [ 1 1 1]]

Пример

Использование нескольких условий с функцией, возвращающей разные значения в зависимости от интервала:

import numpy as np arr = np.array([-5, -2, 0, 3, 7]) res = np.piecewise( arr, [arr < -1, (arr >= -1) & (arr <= 2), arr > 2], [-10, 0, 10] ) print(res)

Результат выполнения кода:

[-10 -10 0 10 10]

Смотрите также

  • функцию where,
    которая выбирает значения из двух массивов по условию
  • функцию select,
    которая возвращает значения из списка массивов по условиям
  • функцию choose,
    которая выбирает значения из списка по индексам
  • функцию compress,
    которая возвращает элементы, соответствующие условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить