Тип void
Тип void в NumPy представляет структурированный тип данных, позволяющий хранить записи с полями разных типов. Используется для создания массивов с гетерогенными данными, где каждый элемент является структурой с именованными полями. Тип void является базовым для всех структурированных типов данных и позволяет создавать сложные структуры данных.
Синтаксис
np.dtype([('field1', type1), ('field2', type2), ...])
np.array(data, dtype=dt)
Пример
Создадим структурированный массив с полями разных типов:
import numpy as np
dt = np.dtype([('name', 'U10'), ('age', 'i4'), ('score', 'f8')])
arr = np.array([('Alice', 25, 95.5), ('Bob', 30, 87.3)], dtype=dt)
print(arr)
print("Data type:", arr.dtype)
Результат выполнения кода:
[('Alice', 25, 95.5) ('Bob', 30, 87.3)]
Data type: [('name', '<U10'), ('age', '<i4'), ('score', '<f8')]
Пример
Доступ к полям структурированного массива:
import numpy as np
dt = np.dtype([('name', 'U10'), ('age', 'i4'), ('score', 'f8')])
arr = np.array([('Alice', 25, 95.5), ('Bob', 30, 87.3)], dtype=dt)
print("Names:", arr['name'])
print("Ages:", arr['age'])
print("Scores:", arr['score'])
Результат выполнения кода:
Names: ['Alice' 'Bob']
Ages: [25 30]
Scores: [95.5 87.3]
Пример
Создание вложенных структур:
import numpy as np
dt = np.dtype([('id', 'i4'),
('info', [('name', 'U10'), ('age', 'i4')])])
arr = np.array([(1, ('Alice', 25)), (2, ('Bob', 30))], dtype=dt)
print(arr)
print("Names:", arr['info']['name'])
Результат выполнения кода:
[(1, ('Alice', 25)) (2, ('Bob', 30))]
Names: ['Alice' 'Bob']
Пример
Создание массива void с помощью np.void:
import numpy as np
dt = np.dtype([('x', 'f4'), ('y', 'f4')])
points = np.array([(1.0, 2.0), (3.0, 4.0)], dtype=dt)
print(points)
print("x coordinates:", points['x'])
print("y coordinates:", points['y'])
Результат выполнения кода:
[(1., 2.) (3., 4.)]
x coordinates: [1. 3.]
y coordinates: [2. 4.]