numpy.find_common_type

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.find_common_type.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.find_common_type(array_types, scalar_types)[source]

遵循标准强制规则确定通用类型。

参数:

array_types:sequence

表示数组的dtypes或dtype可转换对象的列表。

scalar_types:sequence

表示标量的dtypes或dtype可转换对象的列表。

返回:

数据类型:dtype

The common data type, which is the maximum of array_types ignoring scalar_types, unless the maximum of scalar_types is of a different kind (dtype.kind). 如果种类不明白,则返回None。

也可以看看

dtypecommon_typecan_castmintypecode

例子

>>> np.find_common_type([], [np.int64, np.float32, np.complex])
dtype('complex128')
>>> np.find_common_type([np.int64, np.float32], [])
dtype('float64')

标准转换规则确保标量不能对数组进行上转换,除非标量是基本不同类型的数据(即在数据类型层次结构中的不同层次),然后数组:

>>> np.find_common_type([np.float32], [np.int64, np.float64])
dtype('float32')

Complex是不同类型的,因此它在array_types参数中转换浮点数:

>>> np.find_common_type([np.float32], [np.complex])
dtype('complex128')

类型说明符字符串可以转换为dtypes,因此可以使用而不是dtypes:

>>> np.find_common_type(['f4', 'f4', 'i4'], ['c8'])
dtype('complex128')