ndarray.astype()

Метод ndarray.astype() создаёт копию массива с другим типом данных. Применяется для конвертации между int, float, bool, complex и т. д.

Сигнатура

ndarray.astype(dtype, order='K', casting='unsafe',
               subok=True, copy=True)

Параметры

  • dtype — целевой тип данных (например, np.int32, np.float64, 'uint8').

  • order — порядок хранения: 'C', 'F', 'A', 'K'.

  • casting — правила приведения: 'no', 'equiv', 'safe', 'same_kind', 'unsafe'.

  • subok — сохранять ли подклассы.

  • copy — если False и тип совпадает, копия не создаётся.

Возвращаемое значение

ndarray указанного типа.

Примеры

Пример 1. float → int (с обрезанием дробной части).

import numpy as np

arr = np.array([1.7, 2.3, -0.9])
print(arr.astype(int))
[ 1  2  0]

Пример 2. int → float.

arr = np.array([1, 2, 3])
print(arr.astype(np.float32))
[1. 2. 3.]

Пример 3. Сжатие в ``uint8`` для пикселей.

img = np.array([0.0, 0.5, 1.0])
print((img * 255).astype(np.uint8))
[  0 127 255]

Пример 4. Приведение к bool.

arr = np.array([0, 1, 2, 0, -3])
print(arr.astype(bool))
[False  True  True False  True]

Пример 5. Безопасное приведение с проверкой casting.

arr = np.array([1.5, 2.5])
try:
    arr.astype(int, casting='safe')
except TypeError as e:
    print("Ошибка:", e)
Ошибка: Cannot cast array from dtype('float64') to dtype('int64') according to the rule 'safe'

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.