功能
PyObject* PyArray_TypeObjectFromType(int);
将NumPy标量类型(NPY_BOOL,NPY_BYTE,...)的类型编号转换为相应的类型对象。
如何进行相反的转换,从NumPy标量类型的类型对象到相应的类型号?
编辑:以下代码基于kwatford的回答。它接受类型对象,如int和numpy.int16,以及字符串,如“int”,u“int”和“int16”。
int numpyScalarTypeNumber(PyObject* obj)
{
PyArray_Descr* dtype;
if(!PyArray_DescrConverter(obj, &dtype)) return NPY_NOTYPE;
int typeNum = dtype->type_num;
Py_DECREF(dtype);
return typeNum;
}
答案 0 :(得分:4)
如果您可以获得PyArray_Descr
结构而不是PyArray_TypeObject
,则只需查看type_num字段即可。可以使用PyArray_DescrFromType通过类型编号获取描述结构。如果你看一下这个链接,还有一些函数可以将各种东西转换成描述。它们通常比类型对象更有用,它们也包含对其类型的引用。