C APIでnumpyの行列を作成するにはどのような方法?
-
05-09-2019 - |
質問
私は、私が見つけることができる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.ndarray
をnumpy.matrix
への参照を変更しました。
私はまた、被験体に良いのチュートリアルが見つかりました: http://starship.python.net/乗組員/ hinsen / NumPyExtensions.htmlする
所属していません StackOverflow