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数组和数据类型列表
需要其结果类型的某些操作的操作数。
- 返回:
- 输出数据类型
结果类型。
也可以看看
笔记
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')