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.
Используемый алгоритм выглядит следующим образом.
Категории определяются в первую очередь путем проверки, являются ли boolean, integer (int/uint) или floating point (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')
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.result_type.html