3

私はPythonC-APIを使用して、いくつかのC++コードをPythonパッケージとしてラップしています。結局、私はnumpy配列の軸を逆にする必要があります。

x = x [:、::-1]

Numpy C-APIを使用してこれを行う方法はありますか?軸を転置および交換するためのルーチンがあることは知っていますが、索引付けについてはあまりわかりません。何か案は?ありがとう、アンディ

4

1 に答える 1

3

Pythonでのインデックス作成は、オブジェクトの__getitem__()メソッドを呼び出すための単なる構文糖衣であるため(つまり、x[:, ::-1]と同等x.__getitem__((slice(None), slice(None, None, -1))))、必要なスライスオブジェクトを作成し、それらを正しい順序でタプルに格納してから、__getitem__()タプルを使用してオブジェクトのメソッドを呼び出す必要があります。引数。

次のリンクを確認してください。

http://docs.python.org/c-api/slice.html#PySlice_New
http://docs.python.org/c-api/tuple.html#PyTuple_Pack
http://docs.python.org/c- api / object.html#PyObject_GetItem

まだ読んでいない場合は、最初にC APIの使用方法を読むことをお勧めします。ただし、通常のPythonにしか慣れていない場合は、混乱を招く可能性があります。たとえば、Py_DECREF()またはPy_XDECREF()マクロを使用してコードで作成された参照の参照カウントを明示的にデクリメントする必要があります。http://docs.python.org/c-api/refcounting.html

于 2011-08-09T13:56:58.590 に答える