numpy.result_type

numpy.result_type(*arrays_and_dtypes)

返回将numpy类型提升规则应用于参数后得到的类型。

NumPy的类型升级与C++语言中的规则类似,但也有一些细微的差别。当同时使用标量和数组时,数组的类型优先,并考虑标量的实际值。

例如,计算3*a,其中a是一个32位浮点数组,直观上应该会导致32位浮点输出。如果3是32位整数,numpy规则指示它不能将无损转换为32位浮点,因此64位浮点应该是结果类型。通过检查常量“3”的值,我们发现它适合8位整数,可以无损地强制转换为32位浮点。

参数
arrays_and_dtypes数组和数据类型列表

某些操作的操作数,其结果类型是必需的。

返回
outD型

结果类型。

笔记

1.6.0 新版功能.

具体算法如下。

类别是通过首先检查布尔值、整数(int/uint)或浮点(float/complex)中的哪一个来确定的,所有数组和标量的最大类型是。

如果只有标量,或者标量的最大类别高于数组的最大类别,则数据类型将与 promote_types 以产生返回值。

否则, min_scalar_type 在每个数组上调用,生成的数据类型都与 promote_types 以产生返回值。

对于具有相同位数的类型,int值集不是uint值的子集,而不是反映在 min_scalar_type 但在 result_type .

实例

>>> np.result_type(3, np.arange(7, dtype='i1'))
dtype('int8')
>>> np.result_type('i4', 'c8')
dtype('complex128')
>>> np.result_type(3.0, -2)
dtype('float64')