Атрибут kind
Атрибут kind класса dtype возвращает односимвольную строку, которая обозначает категорию типа данных. Этот атрибут полезен для быстрой проверки типа данных в условных операторах, например, для разделения обработки целых чисел и чисел с плавающей точкой.
Синтаксис
dtype.kind
Атрибут не принимает никаких параметров и возвращает строку, состоящую из одного символа.
Значения атрибута kind
Основные возвращаемые символы для встроенных типов:
'b'- логический (boolean)'i'- целое знаковое (signed integer)'u'- целое беззнаковое (unsigned integer)'f'- число с плавающей точкой (floating-point)'c'- комплексное число (complex floating-point)'S'- байтовая строка (byte string)'U'- строка Unicode (Unicode string)'V'- произвольный тип данных (void)'M'- дата и время (datetime)'m'- интервал времени (timedelta)
Пример
Давайте получим значение атрибута kind для массива целых чисел:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = arr.dtype.kind
print(res)
Результат выполнения кода:
'i'
Пример
Проверим значения атрибута для разных типов данных:
import numpy as np
arr1 = np.array([1.2, 3.4, 5.6])
arr2 = np.array(['a', 'b', 'c'])
arr3 = np.array([True, False, True])
print(arr1.dtype.kind)
print(arr2.dtype.kind)
print(arr3.dtype.kind)
Результат выполнения кода:
'f'
'U'
'b'
Пример
Используем атрибут kind в условном операторе для выбора способа обработки данных:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
if arr.dtype.kind == 'i':
print("Processing integer array")
res = arr * 2
print(res)
else:
print("Processing non-integer array")
res = arr.astype(np.float64)
print(res)
Результат выполнения кода:
"Processing integer array"
[ 2 4 6 8 10]