numpy.promote_types#

numpy.promote_types(type1, type2)#

返回一个数据类型,该数据类型具有最小的尺寸和最小的标量类型,type1type2 都可以安全地转换为该数据类型。返回的数据类型始终被认为是“规范的”,这主要意味着提升后的 dtype 将始终采用本机字节顺序。

此函数是对称的,但很少是结合的。

参数:
type1dtype 或 dtype 指定符

第一个数据类型。

type2dtype 或 dtype 指定符

第二个数据类型。

返回:
outdtype

提升后的数据类型。

另请参阅

result_type, dtype, can_cast

说明

有关类型提升的更多信息,请参阅 numpy.result_type

从 NumPy 1.9 开始,当给 promote_types 函数一个整数或浮点 dtype 作为其中一个参数,另一个参数是字符串 dtype 时,它现在会返回一个有效的字符串长度。以前,它总是返回输入的字符串 dtype,即使它不足以存储转换为字符串的最大整数/浮点值。

版本 1.23.0 中的变更。

NumPy 现在支持更多结构化 dtypes 的类型提升。它现在将从结构化 dtype 中移除不必要的填充,并单独提升包含的字段。

示例

>>> import numpy as np
>>> np.promote_types('f4', 'f8')
dtype('float64')
>>> np.promote_types('i8', 'f4')
dtype('float64')
>>> np.promote_types('>i8', '<c8')
dtype('complex128')
>>> np.promote_types('i4', 'S8')
dtype('S11')

一个非结合案例的示例

>>> p = np.promote_types
>>> p('S', p('i1', 'u1'))
dtype('S6')
>>> p(p('S', 'i1'), 'u1')
dtype('S4')