У меня есть функция вида:
def f(x):
n = 0
while x > basecase:
x = g(x)
n += 1
return n
По существу, он применяет функцию g()
к x
до тех пор, пока не будет выполнено условие, а затем возвращает количество приложений n
, которое потребовалось.
Я хотел бы иметь возможность вызывать эту функцию для массивов с пустыми значениями, поэтому я могу построить график f(x)
для большого диапазона x
с MatPlotLib. Но так как функция теперь не работает - сравнение между x
(массив) и basecase
(скаляр) является проблемой, так как факт, что n - это одно целое число, а не массив .
Я знаю, что мог бы просто позвонить vectorize
, но это медленно - в основном то же самое, что итерация вручную. Что я могу сделать здесь? Есть ли какие-нибудь функциональные программные функции, которые могут спасти меня здесь, или мне нужно было бы переписать вещи с помощью nditer
, если бы я хотел избежать затрат на vectorize
?