Как использовать numpy в необязательном наборе текста

Предположим, что я хочу сделать функцию, которая принимает функцию лямбда (Callable) в качестве параметра, где лямбда-функция принимает вектор в качестве входного сигнала (определяется как массив numpy или матрица numpy) и возвращает новый вектор. Как объявить подпись типа для Callable с типами numpy?

Моя первоначальная попытка выглядит примерно так:

def some_func(calc_new_vector: Callable[[np.array], np.array], ...other-params...) -> SomeType:
    ...do stuff...
    ...return...

Однако это приводит к ошибке при запуске интерпретатора:

TypeError: Callable[[arg, ...], result]: each arg must be a type. Got <built-in function array>.

Ответ 1

Смутно, np.array - это функция, полезная для создания массивов numpy. Это не фактический type созданных массивов.

Тип np.ndarray.

Итак, замените np.array на np.ndarray. Это должно решить проблему.