Numpy 为什么np.dtype(None)=float?
为什么这是numpy的默认行为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
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图像,您实际上需要根据数据类型进行不同的数值缩放。