numpy.exceptions.DTypePromotionError #
- 例外 例外。DTypePromotionError [来源] #
无法将多个 DType 转换为通用 DType。
此异常源于
TypeError
数据类型无法转换为单一通用数据类型时引发的异常。这可能是因为它们属于不同的类别/类或同一类别/类的不兼容实例(请参阅示例)。笔记
许多函数会使用提升来找到正确的结果并执行。对于这些函数,错误通常会与更具体的错误链接在一起,指示未找到输入数据类型的实现。
通常,当arr1 == arr2可以安全地返回 all时,两个数组的数据类型之间的提升应被视为“无效”,
False
因为数据类型根本不同。例子
日期时间和复数是不兼容的类,无法升级:
>>> np.result_type(np.dtype("M8[s]"), np.complex128) DTypePromotionError: The DType <class 'numpy.dtype[datetime64]'> could not be promoted by <class 'numpy.dtype[complex128]'>. This means that no common DType exists for the given inputs. For example they cannot be stored in a single array unless the dtype is `object`. The full list of DTypes is: (<class 'numpy.dtype[datetime64]'>, <class 'numpy.dtype[complex128]'>)
例如,对于结构化数据类型,结构可能不匹配,并且
DTypePromotionError
当给出两个字段数量不匹配的结构化数据类型时,也会出现相同的情况:>>> dtype1 = np.dtype([("field1", np.float64), ("field2", np.int64)]) >>> dtype2 = np.dtype([("field1", np.float64)]) >>> np.promote_types(dtype1, dtype2) DTypePromotionError: field names `('field1', 'field2')` and `('field1',)` mismatch.