Атрибут base
Атрибут base класса dtype возвращает базовый тип данных, лежащий в основе составного типа данных (например, для структурированных массивов или массивов с подтипами). Для простых (скалярных) типов данных атрибут возвращает сам объект dtype. Это полезно для анализа составных типов данных, например, при работе со структурированными массивами, где нужно определить, из каких базовых типов состоят поля. Атрибут доступен только для чтения.
Синтаксис
dtype.base
Атрибут доступен только для чтения и возвращает объект dtype.
Пример для скалярных типов
Для скалярных типов атрибут возвращает сам объект:
import numpy as np
dt_int32 = np.dtype('int32')
dt_float64 = np.dtype('float64')
print("int32.base:", dt_int32.base)
print("float64.base:", dt_float64.base)
print("int32.base is int32:", dt_int32.base is dt_int32)
Результат выполнения кода:
int32.base: int32
float64.base: float64
int32.base is int32: True
Для скалярных типов base указывает на сам тип.
Пример для структурированного типа
Для структурированного типа base возвращает базовый тип каждого поля:
import numpy as np
dt = np.dtype([('x', 'int32'), ('y', 'float64')])
print("Структурированный dtype:", dt)
print("dt.base:", dt.base)
print("Тип dt.base:", type(dt.base))
Результат выполнения кода:
Структурированный dtype: [('x', '<i4'), ('y', '<f8')]
dt.base: dtype('void')
Тип dt.base: <class 'numpy.dtype'>
Базовым типом для структурированного dtype является void, который представляет собой составной блок данных.
Пример с подтипом (subarray)
Для типа данных с подтипом (например, массив внутри dtype) base возвращает базовый тип элементов:
import numpy as np
dt = np.dtype(('int32', (3, 4)))
print("Тип с подтипом:", dt)
print("dt.base:", dt.base)
print("dt.subdtype:", dt.subdtype)
Результат выполнения кода:
Тип с подтипом: (int32, (3, 4))
dt.base: int32
dt.subdtype: (int32, (3, 4))
В этом случае base возвращает базовый тип int32, а subdtype содержит полную информацию о подтипе.
Пример для массива строк
Для строковых типов base возвращает сам тип:
import numpy as np
dt_S = np.dtype('S10')
dt_U = np.dtype('U10')
print("S10.base:", dt_S.base)
print("U10.base:", dt_U.base)
Результат выполнения кода:
S10.base: |S10
U10.base: <U10
Для строковых типов base возвращает сам объект dtype.