/ / Convertir una matriz numpy en un vector nativo c ++ - python, numpy, python-c-api

Convertir una matriz numpy en un vector nativo c ++ - python, numpy, python-c-api

Actualmente tengo una extensión de Python C que toma una lista de PyObject y puedo analizar usando "PySequence_Fast".

¿Hay un comando equivalente que me permita analizar una matriz numpy unidimensional?

Aclamaciones, Jack

Respuestas

1 para la respuesta № 1

La función PyArray_FROM_OTF se convierte en una matriz numpy (a menos que el argumento ya sea una matriz numpy cuando simplemente lo devuelve con un refcount incrementado). Ver http://docs.scipy.org/doc/numpy/user/c-info.how-to-extend.html#converting-an-arbitrary-sequence-object. p.ej.

PyObject* definitely_numpy_array = PyArray_FROM_OTF(might_be_numpy_array,
NPY_DOUBLE, // you need to specify a type
0 // there"s assorted flags you can add to describe the exact format you want which are described in the documentation
)

Esto puede funcionar en cualquier número de dimensiones, por lo que si requiere estrictamente 1D, tendrá que agregar una verificación. También requiere que se incluyan los encabezados numpy ("numpy / arrayobject.h")