特定の numpy.ndarray クラスに対して型ヒントを実装している人はいますか?
現在、私は typing.Any を使用していますが、もっと具体的なものがあればいいでしょう。
たとえば、numpyの人々が array_like オブジェクトクラスに type alias を追加した場合。さらに良いのは、 dtype レベルでサポートを実装して、他のオブジェクトと func がサポートされるようにすることです。
typing
モジュールは次の場所で開発されたようです。
https://github.com/python/typing
メインのnumpy
リポジトリは
https://github.com/numpy/numpy
Pythonのバグとコミットは次の場所で追跡できます。
機能を追加する通常の方法は、メインリポジトリを分岐し、機能が耐爆性になるまで機能を開発し、プルリクエストを送信することです。プロセスのさまざまな時点で、明らかに他の開発者からのフィードバックが必要です。自分で開発を行うことができない場合、価値のあるプロジェクトであることを他の人に納得させる必要があります。
cython
には注釈の形式があり、これを使用して効率的なC
コードを生成します。
numpy
ドキュメントのarray-like
段落を参照しました。 typing
情報に注意してください。
Array()を使用してオブジェクトをnumpy配列に変換できるかどうかを確認する簡単な方法は、単にインタラクティブに試して、動作するかどうかを確認することです! (Python Way)。
言い換えれば、numpy
開発者は固定されることを拒否します。どんな種類のオブジェクトをnp.ndarray
に変換できるか、または変換できないかを、言葉で説明していない、またはできない。
In [586]: np.array({'test':1}) # a dictionary
Out[586]: array({'test': 1}, dtype=object)
In [587]: np.array(['one','two']) # a list
Out[587]:
array(['one', 'two'],
dtype='<U3')
In [589]: np.array({'one','two'}) # a set
Out[589]: array({'one', 'two'}, dtype=object)
独自の関数の場合、次のような注釈
def foo(x: np.ndarray) -> np.ndarray:
動作します。もちろん、関数が引数をnumpy
経由で渡すasanyarray
関数を呼び出す場合(多くの場合)、そのような注釈は不完全です。入力はlist
、またはnp.matrix
など。
この質問と回答を評価するときは、日付に注意してください。 484は当時比較的新しいPEPであり、標準のPythonはまだ開発中です。しかし、提供されたリンクはまだ有効であるようです。
DataShape を確認してください。データ型と、入力および出力配列の大きさの構文を使用します。
私がやったことは、それを
Dict [Tuple [int、int]、TYPE]
たとえば、floatの配列が必要な場合は、次のようにします。
a = numpy.empty(shape=[2, 2], dtype=float) # type: Dict[Tuple[int, int], float]
これはもちろん、ドキュメントの観点からは正確ではありませんが、正しい使用法を分析し、pyCharmで適切に完成させるために、うまく機能します!