numpy.result_type
- numpy.result_type(*arrays_and_dtypes)
-
Возвращает тип, который получается в результате применения правил повышения типа NumPy к аргументам.
Повышение типа в NumPy работает аналогично правилам в языках, таких как C++, с некоторыми небольшими отличиями. Когда используются как скаляры, так и массивы, тип массива имеет приоритет, а фактическое значение скаляра учитывается.
Например, вычисление 3*a, где a — массив с плавающей запятой 32-битного типа, интуитивно должно привести к выходному значению с плавающей запятой 32-битного типа. Если 3 — это 32-битное целое число, правила NumPy показывают, что оно не может быть без потерь преобразовано в 32-битное число с плавающей запятой, поэтому типом результата должно быть 64-битное число с плавающей запятой. Исследуя значение константы «3», мы видим, что оно помещается в 8-битное целое число, которое может быть без потерь преобразовано в 32-битное число с плавающей запятой.
- Параметры:
-
- arrays_and_dtypesсписок массивов и типов данных
-
Операнды некоторой операции, тип результата которой требуется.
- Возвращает:
-
- outтип данных
-
Тип результата.
См. также
Примечания
Новая функция в версии 1.6.0.
Используемый алгоритм:
Категории определяются путем проверки, являются ли булевы, целые (int/uint) или числа с плавающей запятой (float/complex) максимальным видом всех массивов и скаляров.
Если существуют только скаляры или максимальная категория скаляров выше максимальной категории массивов, типы данных объединяются с помощью
promote_typesдля получения возвращаемого значения.В противном случае
min_scalar_typeвызывается для каждого скаляра, а полученные типы данных объединяются с помощьюpromote_typesдля получения возвращаемого значения.Множество целых значений не является подмножеством значений uint для типов с одинаковым количеством битов, что не отражается в
min_scalar_type, но обрабатывается как особый случай вresult_type.Примеры
>>> 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')
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.result_type.html