Я часто пишу функции / методы, которые принимают некоторую переменную, которая может иметь различные формы, например, списки списков, списки кортежей, кортежи кортежей и т. Д., Содержащие числа, которые я хочу преобразовать в массив с пустыми значениями,вроде как следующее:
import numpy as np
def my_func(var: 'what-freaking-type-here') -> np.ndarray:
a = np.asarray(var, dtype=np.float64) # type: np.array[np.float] maybe?
return a
По сути, мой вопрос заключается в том, как правильно набрать это, учитывая, что я могу передать все виды значений этой функции, чтобы в итоге создать 2D массив с плавающей точкой (обратите внимание, что это всего лишь пример, а размерность и тип должны быть взаимозаменяемыми):
my_func([[0], [0]])
my_func([(0,), (2.3,)])
my_func(((0,), [2.3,]))
my_func(np.arange(100).reshape(10, 10))
У меня есть такая практика - брать все виды значений и превращать их в numpy
массивы во многих местах, чтобысделать работу с функциями легкой и интуитивно понятной.Тем не менее, я понятия не имею, как правильно набрать это, чтобы проверить с mypy
.Есть намеки?