У меня есть функция, которую я хотел бы принимать в качестве входных данных числовые массивы или числа с плавающей запятой. Я хочу продолжать выполнять операцию до тех пор, пока некоторая мера ошибки не станет меньше порогового значения.
Простым примером может быть следующее деление числа или массива на 2, пока оно не станет ниже порогового значения ( если число с плавающей запятой) или до тех пор, пока его максимум не станет ниже порогового значения (если массив).
Код: Выделить всё
def f(x): #float version
while x>1e-5:
x = x/2
return x
def f(x): #np array version
while max(x)>1e-5:
x = x/2
return x
К сожалению, max не будет работать, если у меня есть что-то, что не является итерируемым, и x>1e-5 не будет работать, если x< /код> — это массив. Я не могу найти ничего, что можно было бы сделать, кроме разве что векторизации, но, похоже, это не так эффективно, как хотелось бы. Как я могу получить одну функцию для обработки обоих случаев?
Подробнее здесь:
https://stackoverflow.com/questions/793 ... onditional