C언어의 구조체(struct
)와 유사한 배열이다. 즉 정의된 구조체가 BTS 멤버라고 하면, 구조체의 member는 활동명, 나이, 본명 등인 것이다. 그리고 NumPy에서 이러한 data set을 가진 배열을 Structured Array(구조화된 배열)이라고 한다.
Structured Array의 member를 가져오기 위해서는 dictionary방식(<structure_name>["<member_name>"]
)으로 가져온다
from datetime import datetime >>> bts = np.array([('V', datetime.now().year - 1995 + 1, "Taehyung Kim"), ("JIN", datetime.now().year - 1992 + 1, "Seokjin Kim"), ("RM", datetime.now().year - 1994 + 1, "Namjoon Kim") ], dtype=[("stage_name", "U10"), ("age", "int64"), ("real_name", "U10")]) >>> bts array([('V', 27, 'Taehyung K'), ('JIN', 30, 'Seokjin Ki'), ('RM', 28, 'Namjoon Ki')], dtype=[('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]) >>> bts[0] ('V', 27, 'Taehyung Kim') >>> bts["real_name"] array(['Taehyung Kim', 'Seokjin Kim', 'Namjoon Kim'], dtype='<U15') # slicing >>> bts[0:2] array([('V', 27, 'Taehyung Kim'), ('JIN', 30, 'Seokjin Kim')], dtype=[('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]) # boolean indexing >>> bts[[True, False, False]] array([('V', 27, 'Taehyung Kim')], dtype=[('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]) # fancy indexing >>> bts[[2]] array([('RM', 28, 'Namjoon Kim')], dtype=[('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]) >>> bts.dtype dtype([('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]) # member name >>> bts.dtype.names ('stage_name', 'age', 'real_name') # (member name, data type) >>> bts.dtype.descr [('stage_name', '<U10'), ('age', '<i8'), ('real_name', '<U15')]