numpy
数字类型如何是basestring
for nptype in [np.int32, np.int64, np.integer, np.float]:
for stype in [str, basestring, unicode]:
print nptype, stype, np.issubdtype(nptype,stype)
<type 'numpy.int32'> <type 'str'> False
<type 'numpy.int32'> <type 'basestring'> True
<type 'numpy.int32'> <type 'unicode'> False
<type 'numpy.int64'> <type 'str'> False
<type 'numpy.int64'> <type 'basestring'> True
<type 'numpy.int64'> <type 'unicode'> False
<type 'numpy.integer'> <type 'str'> False
<type 'numpy.integer'> <type 'basestring'> True
<type 'numpy.integer'> <type 'unicode'> False
<type 'float'> <type 'str'> False
<type 'float'> <type 'basestring'> True
<type 'float'> <type 'unicode'> False
答案 0 :(得分:3)
basestring
不是dtype或者可以直接转换为dtype,issubdtype
没有错误处理来识别它。 basestring
在numpy.dtype
上获取dtype,并且由于{{1}}看到输入是一个它不理解的Python类型对象,因此生成的dtype是对象dtype。其余的逻辑认为每个dtype都是对象dtype的子类型。