Вычитайте, если отрицательный, затем верните 0

Я предисловие, это только для удовлетворения моего любопытства, а не для помощи в проекте кодирования. Но я хотел знать, знает ли кто-нибудь о функции (особенно в python, но я соглашусь с действительной математической концепцией) вроде абсолютного значения, что при задании числа возвращает 0, если отрицательный, или возвращает это число, если оно положительное.

Псевдокод:

def myFunc(x): if x > 0: return x else: return 0 

Опять же, не задавая вопрос из сложности, просто любопытство. Мне нужно было пару раз сейчас, и мне было интересно, действительно ли мне нужно написать свою собственную функцию или если она уже существует. Если для этого нет функции, есть ли способ записать это в одной строке, используя выражение, которое не оценивается дважды.

т.е.

 myVar = xy if xy>0 else 0 

Я был бы в порядке с таким решением, если xy не оценивался дважды. Поэтому, если у кого-то есть какое-то решение, я буду признателен.

благодаря

3 Solutions collect form web for “Вычитайте, если отрицательный, затем верните 0”

В одну сторону…

 >>> max(0, x) 

Это должно сделать это:

 max(xy, 0) 

Звучит как вопрос типа анализа. numpy может прийти на помощь!

Если у вас есть данные в массиве:

 x = np.arange(-5,11) print x [-5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10] # Now do your subtraction and replacement. x[(xy)>0] -= y x[(xy)<0] = 0 

Если я правильно понял ваш вопрос, вы хотите заменить значения в x, где xy <0 с нулями, в противном случае заменить на xy.

ПРИМЕЧАНИЕ. Решение выше хорошо работает для вычитания целого из массива или работы с двумя массивами равных размеров. Однако решение Дэниела более элегантно при работе над двумя списками одинаковой длины. Все зависит от ваших потребностей (и хотите ли вы отправиться в мир numpy или нет).

  • Python для студентов-математиков?
  • Ограничения реализации float.as_integer_ratio ()
  • scipy не оптимизирует и возвращает «Желаемая ошибка не всегда достигается из-за потери точности»
  • Поля направлений рисования
  • sqrt: ValueError: ошибка в области математики
  • Набор продуктов в Python
  • Быстрый способ разместить бит для головоломки
  • Понимание функции факторизации
  • Python - лучший язык программирования в мире.