Функция common_type
Функция common_type определяет общий тип данных,
к которому можно безопасно привести все переданные массивы.
Она принимает произвольное количество массивов в качестве
аргументов и возвращает тип данных, подходящий для хранения
значений из всех входных массивов без потери информации.
Синтаксис
np.common_type(array1, array2, ...)
Функция принимает один или несколько массивов в качестве
аргументов. Возвращаемое значение - объект типа данных
dtype, который представляет собой наиболее общий
тип среди переданных массивов.
Пример с массивами разных типов
Рассмотрим массивы с целыми числами и числами с плавающей точкой:
import numpy as np
arr_int = np.array([1, 2, 3, 4])
arr_float = np.array([1.5, 2.5, 3.5])
res = np.common_type(arr_int, arr_float)
print(res)
Результат выполнения кода:
float64
Пример с массивами разных целочисленных типов
Если переданы массивы с разными целочисленными типами, то общим типом будет тот, который может представить все значения без потери точности:
import numpy as np
arr_int8 = np.array([1, 2, 3], dtype=np.int8)
arr_int64 = np.array([1000, 2000, 3000], dtype=np.int64)
res = np.common_type(arr_int8, arr_int64)
print(res)
Результат выполнения кода:
int64
Пример с булевым массивом и числами
Булев тип bool преобразуется в целочисленный тип
при совместном использовании с числами:
import numpy as np
arr_bool = np.array([True, False, True])
arr_int = np.array([10, 20, 30])
res = np.common_type(arr_bool, arr_int)
print(res)
Результат выполнения кода:
int64
Пример с несколькими массивами
Функция может принимать любое количество массивов:
import numpy as np
arr1 = np.array([1, 2, 3], dtype=np.int32)
arr2 = np.array([4.0, 5.0, 6.0], dtype=np.float32)
arr3 = np.array([7, 8, 9], dtype=np.int64)
res = np.common_type(arr1, arr2, arr3)
print(res)
Результат выполнения кода:
float64
Смотрите также
-
функцию
promote_types,
которая возвращает общий тип для двух скалярных типов -
функцию
result_type,
которая определяет возвращаемый тип для операции -
функцию
can_cast,
которая проверяет возможность безопасного приведения -
функцию
min_scalar_type,
которая возвращает минимальный тип для скалярного значения