Python Numpy:np.finfo并没有像人们期望的那样失败
我使用numpy.iinfo和np.finfo来测试给定的类型或值是对应于整数还是浮点。处理无时有一种奇怪的行为 如预期的那样,以下操作失败:Python Numpy:np.finfo并没有像人们期望的那样失败,python,numpy,floating-point,Python,Numpy,Floating Point,我使用numpy.iinfo和np.finfo来测试给定的类型或值是对应于整数还是浮点。处理无时有一种奇怪的行为 如预期的那样,以下操作失败: np.iinfo(None) 然而 np.finfo(None) 没有,正如我所预料的那样。那是虫子吗? 当type(None)返回NoneType时,np.finfo应该像np.iinfo一样失败。从纯技术层面上,我们可以通过查看 相关的片段可能是 @set_module('numpy') class finfo(object): <-
np.iinfo(None)
然而
np.finfo(None)
没有,正如我所预料的那样。那是虫子吗?
当type(None)返回NoneType时,np.finfo应该像np.iinfo一样失败。从纯技术层面上,我们可以通过查看 相关的片段可能是
@set_module('numpy')
class finfo(object):
<--snip-->
def __new__(cls, dtype):
try:
dtype = numeric.dtype(dtype)
except TypeError:
# In case a float instance was given
dtype = numeric.dtype(type(dtype))
@set_模块('numpy'))
类finfo(对象):
定义新(cls,数据类型):
尝试:
dtype=数字。dtype(dtype)
除类型错误外:
#如果给出了一个float实例
dtype=numeric.dtype(type(dtype))
您看到的行为是np.dtype(None)
对dtype('float64')
求值的结果,我觉得这本身并不是100%自然的。其他人(包括开发人员)似乎是这样。比如说
哦,好吧,我们可能不赞成使用dtype(None),它看起来很漂亮
没用,但我不知道是否值得这么麻烦
基于这一讨论,并从上面的代码来看,
None
的处理方式确实有点出乎意料,但这只是我有根据的猜测。从纯技术层面上,我们可以通过查看
相关的片段可能是
@set_module('numpy')
class finfo(object):
<--snip-->
def __new__(cls, dtype):
try:
dtype = numeric.dtype(dtype)
except TypeError:
# In case a float instance was given
dtype = numeric.dtype(type(dtype))
@set_模块('numpy'))
类finfo(对象):
定义新(cls,数据类型):
尝试:
dtype=数字。dtype(dtype)
除类型错误外:
#如果给出了一个float实例
dtype=numeric.dtype(type(dtype))
您看到的行为是np.dtype(None)
对dtype('float64')
求值的结果,我觉得这本身并不是100%自然的。其他人(包括开发人员)似乎是这样。比如说
哦,好吧,我们可能不赞成使用dtype(None),它看起来很漂亮
没用,但我不知道是否值得这么麻烦
基于以上讨论和代码,处理None
的方式确实有点出乎意料,但这只是我的猜测