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数组和数据类型列表
- 需要其结果类型的某个操作的运算数。 
 
- 返回:
- out数据类型
- 结果类型。 
 
 - 另请参阅 - 说明 - 使用的具体算法如下。 - 首先检查所有数组和标量的最大类型是布尔型、整型(int/uint)还是浮点型(float/complex),以此确定类别。 - 如果只有标量,或者标量的最大类别高于数组的最大类别,则数据类型将与 - promote_types结合以生成返回值。- 否则,将对每个标量调用 - min_scalar_type,并将生成的数据类型全部与- promote_types结合以生成返回值。- 对于具有相同比特数的类型,int 值的集合不是 uint 值的子集,这一点未在 - min_scalar_type中体现,但在- result_type中作为特殊情况处理。- 示例 - >>> import numpy as np >>> 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')