numpy.result_type#
- numpy.result_type(*arrays_and_dtypes)#
返回将 NumPy 类型提升规则应用于参数后产生的类型.
NumPy 中的类型提升与 C++ 等语言中的规则类似,但略有不同. 当同时使用标量和数组时,数组的类型优先,并且会考虑标量的实际值.
例如,计算 3a,其中 a 是 32 位浮点数数组,直观上应该产生 32 位浮点数输出. 如果 3 是一个 32 位整数,则 NumPy 规则表明它不能无损地转换为 32 位浮点数,因此 64 位浮点数应该是结果类型. 通过检查常量"3"的值,我们看到它适合 8 位整数,可以无损地转换为 32 位浮点数.
- 参数:
- arrays_and_dtypes数组和 dtypes 的列表
一些操作的操作数,需要其结果类型.
- 返回:
- outdtype
结果类型.
参见
注释
所使用的具体算法如下.
类别由首先检查所有数组和标量的最大种类是布尔值,整数(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')