質問

私は、私が見つけることができるnumpyのC APIのドキュメントを読んで、それでもC APIで行列オブジェクトを構築する可能性があるかどうかを知ることができませんでした - いない2次元配列が。関数は、数学の行列との仕事のために意図されており、ユーザは、(乗算及び累乗は行列サブクラスが持っている唯一の違いである)行列に配列から、この値を変換するために、忘れ行列の乗算を呼び出した場合、私は奇妙な結果を望んでいません。

役に立ちましたか?

解決

numpy.matrixで定義された一般クラスでありますnumpyの/コア/ defmatrix.py に。あなたはPythonでユーザー定義クラスの他のインスタンスとしてのC APIを使用して構築することができます。

他のヒント

あなたはPyObject_Call*機能を持つ呼び出し可能な任意のパイソンを呼び出すことができます。

PyObject *numpy = PyImport_ImportModule("numpy");
PyObject *numpy_matrix = PyObject_GetAttrString(numpy, "matrix");
PyObject *my_matrix = PyObject_CallFunction(numpy_matrix, "(s)", "0 0; 0 0");

これは、サイズ2×2の行列my_matrixを作成します。

の編集:の代わりにnumpy.zerosする/ numpy.ndarraynumpy.matrixへの参照を変更しました。

私はまた、被験体に良いのチュートリアルが見つかりました: http://starship.python.net/乗組員/ hinsen / NumPyExtensions.htmlする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top