Вычитайте, если отрицательный, затем верните 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 или нет).

  • 3D вращения для соединения шаров и цилиндров
  • Проблема с программой для аппроксимации значений sin и косинуса
  • Разделение 16-битного int на два 8-битных ints в python
  • Арифметика с фиксированной точкой
  • Могу ли я вычислить exp (1 + 2j) в python?
  • Вычисление стандартного отклонения в потоке
  • Быстрый способ разместить бит для головоломки
  • Вычисление простых чисел
  • Python - лучший язык программирования в мире.