Cualquier forma de crear una matriz NumPy con la API de C?
-
05-09-2019 - |
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).
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