Атрибут names
Атрибут names класса dtype возвращает кортеж,
содержащий имена полей для составных типов данных.
Составные типы включают структурированные массивы,
массивы с полями и записи. Если dtype не является
составным, атрибут возвращает None.
Синтаксис
dtype.names
Пример
Давайте создадим структурированный массив с полями
'name' и 'age', а затем получим их имена с помощью
атрибута names:
import numpy as np
dtype = np.dtype([('name', 'U10'), ('age', 'i4')])
arr = np.array([('Alice', 25), ('Bob', 30)], dtype=dtype)
res = arr.dtype.names
print(res)
Результат выполнения кода:
('name', 'age')
Пример
Давайте проверим, что атрибут возвращает None
для обычного массива, не имеющего полей:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = arr.dtype.names
print(res)
Результат выполнения кода:
None
Пример
Давайте создадим массив с несколькими полями и итерируемся по их именам:
import numpy as np
dtype = np.dtype([('id', 'i4'), ('first_name', 'U20'), ('last_name', 'U20')])
arr = np.array([(1, 'John', 'Doe'), (2, 'Jane', 'Smith')], dtype=dtype)
for name in arr.dtype.names:
print(name)
Результат выполнения кода:
id
first_name
last_name
Пример
Давайте воспользуемся атрибутом names для
получения значений полей по их именам:
import numpy as np
dtype = np.dtype([('x', 'f4'), ('y', 'f4'), ('z', 'f4')])
arr = np.array([(1.0, 2.0, 3.0), (4.0, 5.0, 6.0)], dtype=dtype)
for name in arr.dtype.names:
print(f"{name}: {arr[name]}")
Результат выполнения кода:
x: [1. 4.]
y: [2. 5.]
z: [3. 6.]