टाइप करने के लिए समारोहNumPy सी एपीआई: परिवर्तित प्रकार वस्तु संख्या
PyObject* PyArray_TypeObjectFromType(int);
एक NumPy अदिश प्रकार (NPY_BOOL, NPY_BYTE, ...) इसी प्रकार वस्तु के लिए प्रकार संख्या बदल देता है।
आप प्रकार के ऑब्जेक्ट से न्यूमपी स्केलर प्रकार के संबंधित प्रकार संख्या में विपरीत रूपांतरण कैसे करते हैं?
संपादित करें: निम्नलिखित कोड 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;
}
यह मेरे प्रश्न का उत्तर नहीं देता है। मेरे पास काम करने के लिए केवल ऑब्जेक्ट ऑब्जेक्ट है। मैं एक पायथन एक्सटेंशन मॉड्यूल लिख रहा हूं जहां कार्यों में से एक में पाइथन इंटरफ़ेस है जो स्केलर प्रकार के लिए एक प्रकार ऑब्जेक्ट लेता है। – user763305
फिर आप शायद [PyArray_DescrConverter] (http://docs.scipy.org/doc/numpy/reference/c-api.array.html#PyArray_DescrConverter) की तलाश कर रहे हैं, जिसे किसी प्रकार का प्रकार या नाम लेना चाहिए (या अन्य चीजें जिन्हें आप 'numpy.dtype' को दे सकते हैं) और इसके लिए descr प्राप्त करें। उस से आप टाइप नंबर, प्रकार टाइप करें, ऑब्जेक्ट टाइप करें, या जो कुछ भी आप चाहते हैं। – kwatford
+1: जिसने समस्या हल की। उपरोक्त मेरे प्रश्न में संपादित देखें। – user763305