numpy.exceptions.DTypePromotionError
- исключениеexceptions.DTypePromotionError[source]
-
Несколько типов данных не могут быть преобразованы в общий.
Это исключение происходит от
TypeErrorи возникает всякий раз, когда типы данных не могут быть преобразованы в единственный общий. Это может произойти из-за их принадлежности к разным категориям/классам или из-за несовместимости экземпляров одного и того же типа (см. Примеры).Примечания
Многие функции будут использовать повышение для определения правильного результата и реализации. Для этих функций ошибка обычно будет связана с более конкретной ошибкой, указывающей, что реализация для введённых типов данных не найдена.
Как правило, повышение должно рассматриваться как «недействительное» между типами данных двух массивов, когда
arr1 == arr2может безопасно вернуть все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.
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.exceptions.DTypePromotionError.html