Domanda

Ho letto la documentazione sul NumPy C API ho trovato, ma non era ancora in grado di sapere se v'è la possibilità di costruire un oggetto matrice C API - non una matrice bidimensionale. La funzione è inteso per lavoro con matrici matematiche, e non voglio strani risultati se l'utente chiama moltiplicazione matriciale dimenticando di convertire questo valore da una matrice a una matrice (moltiplicazione ed elevamento a potenza essendo l'unica differenza che matrice sottoclasse ha).

È stato utile?

Soluzione

numpy.matrix è una classe ordinaria definita nella NumPy / core / defmatrix.py . È possibile costruire usando C API come qualsiasi altra istanza di classe definita dall'utente in Python.

Altri suggerimenti

È possibile chiamare qualsiasi pitone richiamabile con le funzioni 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");

Ciò creerà una my_matrix matrice di dimensione 2x2.

EDIT:. modificati i riferimenti da numpy.zeros / numpy.ndarray a numpy.matrix invece

Ho anche trovato un buon tutorial su questo argomento: http://starship.python.net/ equipaggio / Hinsen / NumPyExtensions.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top