РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
299 of 541 menu

Функция can_cast

Функция can_cast проверяет возможность приведения данных от одного типа к другому. Первым параметром функция принимает исходный тип данных, вторым - целевой тип. Третьим параметром можно указать режим приведения: 'no', 'equiv', 'safe', 'same_kind' или 'unsafe'.

Синтаксис

np.can_cast(from_type, to_type, casting='safe')

Режимы приведения

Функция поддерживает пять режимов проверки:

# 'no' - только точное совпадение типов # 'equiv' - эквивалентные типы # 'safe' - безопасное приведение без потери данных # 'same_kind' - приведение в рамках одного семейства # 'unsafe' - любое приведение

Пример с безопасным приведением

Проверим возможность безопасного приведения целого числа к числу с плавающей точкой:

import numpy as np res = np.can_cast(np.int32, np.float64) print(res)

Результат выполнения кода:

True

Приведение возможно, так как float64 может хранить все значения int32.

Пример с небезопасным приведением

Проверим приведение числа с плавающей точкой к целому числу:

import numpy as np res = np.can_cast(np.float64, np.int32) print(res)

Результат выполнения кода:

False

Приведение невозможно, так как теряется дробная часть числа.

Пример с режимом same_kind

Проверим приведение целого числа к комплексному с режимом 'same_kind':

import numpy as np res = np.can_cast(np.int32, np.complex128, casting='same_kind') print(res)

Результат выполнения кода:

True

Приведение разрешено, так как целые числа и комплексные числа относятся к одному семейству числовых типов.

Пример с несовместимыми типами

Проверим приведение строкового типа к числовому:

import numpy as np res = np.can_cast(np.str_, np.int32) print(res)

Результат выполнения кода:

False

Приведение невозможно, так как строки нельзя преобразовать к числам безопасно.

Пример с проверкой массива

Проверим, можно ли привести существующий массив к другому типу данных:

import numpy as np arr = np.array([1, 2, 3, 4, 5], dtype=np.int32) res = np.can_cast(arr.dtype, np.float64) print(res)

Результат выполнения кода:

True

Массив можно безопасно преобразовать к типу float64.

Пример с режимом unsafe

Режим 'unsafe' разрешает любое приведение, даже с потерей данных:

import numpy as np res = np.can_cast(np.float64, np.int32, casting='unsafe') print(res)

Результат выполнения кода:

True

При режиме 'unsafe' функция возвращает True для любых типов данных.

Смотрите также

  • функцию promote_types,
    которая определяет результирующий тип при смешивании двух типов
  • функцию result_type,
    которая возвращает тип, полученный при применении операции к аргументам
  • функцию min_scalar_type,
    которая определяет минимальный тип для хранения скалярного значения
  • функцию common_type,
    которая находит общий тип для массива и скаляра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить