web-dev-qa-db-fra.com

Astuce de type pour NumPy ndarray dtype?

J'aimerais qu'une fonction inclue un indice de type pour NumPy ndarray avec son dtype.

Avec des listes, par exemple, on pourrait faire ce qui suit ...

def foo(bar: List[int]):
   ...

... afin de donner une indication de type que bar doit être list composé de int.

Malheureusement, cette syntaxe lève des exceptions pour NumPy ndarray:

def foo(bar: np.ndarray[np.bool]):
   ...

> np.ndarray[np.bool]) (...) TypeError: 'type' object is not subscriptable

Est-il possible de donner des indices de type spécifiques à dtype pour np.ndarray?

8
daniel451

À ma connaissance, il n'est pas encore possible de spécifier dtype dans les indices de type tableau numpy dans les signatures de fonction. Il devrait être mis en œuvre à un moment donné dans le futur. Voir numpy GitHub issue # 737 and numpy-stubs GitHub pour plus de détails sur l'état de développement actuel.

8
Xukrao

Vous pouvez vérifier nptyping :

from nptyping import Array

def foo(bar: Array[np.bool]):
   ...

Ou vous pouvez simplement utiliser des chaînes pour les indices de type:

def foo(bar: 'np.ndarray[np.bool]'):
   ...
14
R H