Spec-Zone.ru › NumPy 2.0

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.

Используемый алгоритм:

Категории определяются путем проверки, являются ли булевы, целые (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

Spec-Zone.ru

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