구조화된 배열 생성 및 접근
먼저 간단한 구조화된 배열을 만들어 보겠습니다. 구조화된 배열의 데이터 타입 (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': 최대 길이가 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']