Pregunta

I leído la documentación sobre NumPy C API que pude encontrar, pero todavía no era capaz de averiguar si hay una posibilidad de construir un objeto de matriz con API C - no es una matriz de dos dimensiones. La función está destinada para el trabajo con matrices matemáticas, y no quiero resultados extraños si el usuario llama a la multiplicación de matrices olvidarse de convertir este valor a partir de una matriz a una matriz (multiplicación y exponenciación siendo la única diferencia que tiene subclase matriz).

¿Fue útil?

Solución

numpy.matrix es una clase ordinaria se define en numpy / core / defmatrix.py . Usted puede construir usando API C como cualquier otra instancia de la clase definida por el usuario en Python.

Otros consejos

Puede llamar a cualquier pitón exigible con las funciones 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");

Esto creará un my_matrix matriz de tamaño 2x2.

EDIT:. Changed referencias a numpy.zeros / numpy.ndarray a numpy.matrix lugar

También encontré un buen tutorial sobre el tema: http://starship.python.net/ tripulación / Hinsen / NumPyExtensions.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top