numpy.ndarray の型ヒント / アノテーション (PEP 484) 質問する

numpy.ndarray の型ヒント / アノテーション (PEP 484) 質問する

特定の型ヒントを実装した人はいますか?numpy.ndarrayクラス?

今使っているのはtyping.Anyですが、もっと具体的なものがあればいいと思います。

例えばNumPyの人たちが型エイリアス彼らの配列のようなオブジェクトクラス。さらに良いのは、dタイプレベル、他のオブジェクトがサポートされるように、またufunc

ベストアンサー1

Numpy 1.21 にはジェネリック型numpy.typingのモジュールが含まれていますNDArray


からNumpy 1.21 ドキュメント:
numpy.typing.NDArray = numpy.ndarray[typing.Any, numpy.dtype[+ScalarType]]

のジェネリックバージョンnp.ndarray[Any, np.dtype[+ScalarType]]

実行時に、指定された dtype と未指定の形状を持つ配列を型指定するために使用できます。

例:

>>> import numpy as np
>>> import numpy.typing as npt

>>> print(npt.NDArray)
numpy.ndarray[typing.Any, numpy.dtype[+ScalarType]]

>>> print(npt.NDArray[np.float64])
numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]]

>>> NDArrayInt = npt.NDArray[np.int_]
>>> a: NDArrayInt = np.arange(10)

>>> def func(a: npt.ArrayLike) -> npt.NDArray[Any]:
...     return np.array(a)

2022-09-05現在、シェイプのサポートはまだ進行中です。numpy/numpy#16544

おすすめ記事