Spec-Zone.ru › NumPy 1.11

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 : тип данных

Тип результата.

См. также

dtype, promote_types, min_scalar_type, can_cast

Заметки

Введено в версии 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.11.0/reference/generated/numpy.result_type.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API