Как я могу цитонизировать функцию, которая работает со строками? - PullRequest
1 голос
/ 21 марта 2020

У меня есть функция, которая принимает массив букв (называемый letters) и создает перестановки элементов этого массива в соответствии с записями в списке walks. Наконец, он проверяет, находятся ли какие-либо из этих перестановок в другом массиве (называемом words). Вот минимальный пример

letters = 'resenntesayhresb'
letters = np.char.array(list(letters))
walks = [[0,1,5,6], [1,1,2,3], [1,2,3,4]]
words = np.array(['rent','house'])

def compute(walks, letters, words):

    w =  []
    for i,walk in enumerate(walks):
        w.append(''.join(letters[walk]))

    return np.intersect1d(words, np.array(w))


compute(walks, letters, words)

Я хотел бы цифонизировать эту функцию, потому что я хотел бы применить ее к массиву walk из 16 миллионов записей и массиву слов из полумиллиона записей.

Как я могу цифонизировать эту функцию? Я пробовал магию клетки c, но ускорения, похоже, нет.

...