6
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;
}
這不能回答我的問題。我只有類型對象才能使用。我正在編寫一個Python擴展模塊,其中一個函數的Python接口爲標量類型提供了一個類型對象。 – user763305
然後,您可能正在尋找[PyArray_DescrConverter](http://docs.scipy.org/doc/numpy/reference/c-api.array.html#PyArray_DescrConverter),它應該採用類型或類型的名稱(或其他的東西,你可以給'numpy.dtype')並得到它的descr。從中你可以得到類型編號,類型種類,類型對象,或其他任何你想要的。 – kwatford
+1:解決了這個問題。請參閱上面我的問題中的編輯。 – user763305