== The Kind field in DTypes == The `PyArray_Descr` structure (defined in [source:/trunk/numpy/core/include/numpy/ndarrayobject.h#1172 ndarrayobject.h]) has a character field "kind", which roughly corresponds to the base type of the scalar. This field is exported as the "kind" field of a dtype. Valid values are described in [source:/trunk/numpy/core/numerictypes.py numerictypes.py], and are || '''Character''' || '''Basic numeric type''' || '''Base dtype''' || || b || Boolean || `bool_` || || i || Signed integer || `number` || || u || Unsigned integer || `unsignedinteger` || || f || Floating point || `floating` || || c || Complex number || `complexfloating` || || S || String || `str_` || || U || Unicode string || `unicode_` || || V || Void type || `void` || || O || Python object || `object_` || The kind is used when determining a common dtype for two dtypes. It also can used along with the byte-width to uniquely identify the dtype (`i8`, for instance, is a 64-bit signed integer). It is also used in Numpy and Scipy in a handful of places for checking integerness (or similiar), although those places could be replaced with `issubsctype`. Kind should not be confused with the typecode (another holdover from Numeric). (cookedm: IMO, we don't need kind, and it should be deprecated.)