该函数
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;
}
numpy.dtype
的内容),并获取描述符。从描述符中,您可以获取类型编号、类型种类、类型对象或任何其他您想要的信息。 - kwatford