Numpy 为什么np.dtype(None)=float?

Numpy 为什么np.dtype(None)=float?,numpy,Numpy,为什么这是numpy的默认行为 In [5]: np.dtype(None) Out[5]: dtype('float64') 我希望使用np.issubdtype(None,float)进行一些类型检查,包括图像的返回类型(PIL喜欢0-255个图像,skimagelikes[0,1)images),但这不起作用。我希望有一个外观整洁的解决方案,但我对主要问题的答案感到满意。这是一个特例,其中None转换为默认数据类型。请参阅: 您能再解释一下为什么首先要使用None作为np.issubdt

为什么这是numpy的默认行为

In [5]: np.dtype(None)
Out[5]: dtype('float64')

我希望使用
np.issubdtype(None,float)
进行一些类型检查,包括图像的返回类型(PIL喜欢0-255个图像,
skimage
likes
[0,1)
images),但这不起作用。我希望有一个外观整洁的解决方案,但我对主要问题的答案感到满意。

这是一个特例,其中
None
转换为默认数据类型。请参阅:


您能再解释一下为什么首先要使用
None
作为
np.issubdtype
的参数之一吗?类似这样:
def(x,dtype=None):如果np.issubdtype(dtype,float):返回convert_to_float(x)否则:返回x
就是
dtype
这里就是
x.dtype
?如果是,就使用它,你就不必担心默认值。另外,你是说
如果不是np.issubdtype(…)
?不,
dtype
应该是这个上下文中的一个关键字。而且,
not
没关系,我实际上会有一些不同dtype的案例。通常情况下,您会想要duck type,但对于RGB图像,您实际上需要根据数据类型进行不同的数值缩放。