Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy:np.finfo并没有像人们期望的那样失败_Python_Numpy_Floating Point - Fatal编程技术网

Python Numpy: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): <-

我使用numpy.iinfo和np.finfo来测试给定的类型或值是对应于整数还是浮点。处理时有一种奇怪的行为

如预期的那样,以下操作失败:

 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
的方式确实有点出乎意料,但这只是我的猜测