选择具有更高精度的类型

时间:2017-02-10 16:19:03

标签: python numpy numpy-dtype

函数webpack-dev-server需要两个numpy数组,比如common_precisionx。我想确保它们具有相同和最高的精度。似乎dtypes的关系比较符合我的要求,但是:

  1. 我不知道它实际上比较了什么
  2. 它认为y< numpy.int64,我不确定是否同意
  3. numpy.float16

    编辑: 感谢kennytm的回答,我发现NumPy的 def common_precision(x, y): if x.dtype > y.dtype: y = y.astype(x.dtype) else: x = x.astype(y.dtype) return (x, y) 完全符合我的要求。

    find_common_type

1 个答案:

答案 0 :(得分:0)

x.dtype > y.dtype表示y.dtype can be casted to x.dtype&& x.dtype != y.type),所以:

>>> numpy.dtype('i8') < numpy.dtype('f2')
False
>>> numpy.dtype('i8') > numpy.dtype('f2')
False

float16和int64完全不兼容。您可以提取一些信息,如:

>>> numpy.dtype('f2').kind
'f'
>>> numpy.dtype('f2').itemsize
2
>>> numpy.dtype('i8').kind
'i'
>>> numpy.dtype('i8').itemsize
8

并根据此确定您的比较方案。