numba: векторизация функции с помощью ввода / возврата строки

#python #pandas #string #vectorization #numba

#python #pandas #строка #векторизация #numba

Вопрос:

У меня есть пример функции, которую я хочу векторизовать с помощью numba:

 import numba

@numba.vectorize
def test(x: str):
    return x.strip()
 

и фрейм данных pandas:

 import pandas as pd

df = pd.DataFrame({"A": ["test ", "   test", "  test   ", "test"]})
 

теперь, если я хочу вызвать функцию

 test(df.A.to_numpy())
 

Я получаю {TypeError}return type must be specified for object mode сообщение об ошибке.
@numba.vectorize("unicode_type(unicode_type)") также не работает.

Возможно ли векторизировать функции с помощью строкового ввода?

Комментарии:

1. вы нашли какой-либо способ обойти это, у меня такая же проблема.

2. Я использовал обходной путь с @numba.jit опубликованным ниже

Ответ №1:

Если я использую numba.jit его рабочую:

 @numba.jit
def test(string_array: np.ndarray):
    n=string_array.size
    result=np.empty(n,dtype="U10")
    for i in range(n):
        result[i]=string_array[i].strip()
    return result