Применение рекурсивной функции или цикла переменной длины к элементам массива numpy - PullRequest
0 голосов
/ 22 марта 2019

У меня есть функция вида:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...