Создание и доступ к структурированному массиву
Сначала давайте создадим простой структурированный массив. Тип данных (dtype) структурированного массива определяется как список кортежей. Каждый кортеж указывает поле с его (имя, тип_данных). Это позволяет нам хранить различные типы данных, такие как строки и целые числа, в одном массиве.
Откройте файл structured_arrays.py из файлового проводника на левой панели. Добавьте следующий код для создания структурированного массива, представляющего список людей с их именами и возрастом.
## Create a structured array
data = np.array([('Alice', 25, 55.5), ('Bob', 30, 68.0)],
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])
print("Original Array:")
print(data)
## Access a specific field by its name
names = data['name']
print("\nNames field:")
print(names)
Пояснение кода:
import numpy as np: Эта строка импортирует библиотеку NumPy.
np.array([...], dtype=[...]): Мы создаем массив. Первый аргумент — это список кортежей, где каждый кортеж ('Alice', 25, 55.5) представляет одну строку данных.
dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')]: Это ключевая часть. Мы определяем три поля:
'name': Строка Unicode с максимальной длиной 10 символов (U10).
'age': 4-байтовое (32-битное) целое число (i4).
'weight': 4-байтовое (32-битное) число с плавающей запятой (f4).
data['name']: Мы можем получить доступ ко всем значениям из определенного поля (столбца), используя его имя в качестве индекса, что возвращает новый массив NumPy.
Теперь сохраните файл и запустите его из терминала, чтобы увидеть вывод.
python structured_arrays.py
Вы должны увидеть следующий вывод, который показывает полный структурированный массив и массив, содержащий только имена.
Original Array:
[('Alice', 25, 55.5) ('Bob', 30, 68. )]
Names field:
['Alice' 'Bob']