[파이썬][Numpy] 구조화된 배열과 레코드 어레이 활용 예제

Numpy에서 구조화된 배열과 레코드 어레이(Record Array)를 활용한 예제를 제공하겠습니다. 구조화된 배열과 레코드 어레이는 테이블 형식의 데이터를 다루거나 복잡한 데이터 형태를 표현하는 데 사용됩니다.

구조화된 배열 (Structured Array) 예제:

먼저, 구조화된 배열을 사용하여 여러 데이터 유형을 포함하는 데이터를 생성하고 다루는 예제를 보여드리겠습니다.

import numpy as np

# 구조화된 데이터 타입 정의
dtype = np.dtype([('name', 'U20'), ('age', int), ('score', float)])

# 구조화된 배열 생성
data = np.array([('Alice', 25, 90.5), ('Bob', 30, 85.0), ('Charlie', 22, 88.5)], dtype=dtype)

# 데이터 검색
print("전체 데이터:")
print(data)

# 이름으로 정렬된 데이터 검색
sorted_data = np.sort(data, order='name')
print("\n이름으로 정렬된 데이터:")
print(sorted_data)

# 나이가 25세 이상인 데이터 검색
age_filter = data['age'] >= 25
print("\n25세 이상인 데이터:")
print(data[age_filter])

레코드 어레이 (Record Array) 예제:

레코드 어레이는 구조화된 배열의 특별한 형태로, 필드에 접근할 때 점 표기법을 사용할 수 있는 기능을 제공합니다.

import numpy as np

# 레코드 어레이 생성
data = np.rec.array([('Alice', 25, 90.5), ('Bob', 30, 85.0), ('Charlie', 22, 88.5)], 
                    dtype=[('name', 'U20'), ('age', int), ('score', float)])

# 데이터 검색
print("전체 데이터:")
print(data)

# 이름으로 정렬된 데이터 검색
sorted_data = np.sort(data, order='name')
print("\n이름으로 정렬된 데이터:")
print(sorted_data)

# 나이가 25세 이상인 데이터 검색
age_filter = data['age'] >= 25
print("\n25세 이상인 데이터:")
print(data[age_filter])

이러한 예제에서는 구조화된 배열과 레코드 어레이를 사용하여 다양한 데이터를 생성하고 검색하는 방법을 보여줍니다. 이러한 기능은 테이블 형태의 데이터를 다룰 때 특히 유용하며, 데이터베이스와 유사한 작업을 수행할 때 매우 편리합니다.