Question

J'ai lu la documentation sur l'API C NumPy je pouvais trouver, mais était pas en mesure de savoir s'il est possible de construire un objet matrice avec API C - pas un tableau à deux dimensions. Cette fonction est prévue pour le travail avec des matrices mathématiques, et je ne veux pas étrange si l'utilisateur appelle la multiplication de matrices oublier de convertir cette valeur d'un tableau à une matrice (multiplication et exponentiation étant la seule différence que la sous-classe de matrice a).

Était-ce utile?

La solution

numpy.matrix est une classe ordinaire définie dans numpy / core / defmatrix.py . Vous pouvez construire à l'aide de l'API C comme toute autre instance de la classe définie par l'utilisateur en Python.

Autres conseils

Vous pouvez appeler un python appelable avec les fonctions 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");

Cela va créer une my_matrix de matrice de taille 2x2.

EDIT:. Changé les références à numpy.zeros / numpy.ndarray à la place numpy.matrix

J'ai aussi trouvé un bon tutoriel sur le sujet: http://starship.python.net/ équipe / Hinsen / NumPyExtensions.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top