[python] Arrow 라이브러리와 Numpy의 연동

Arrow는 Apache Arrow 프로젝트의 Python 라이브러리로, 대용량 데이터셋을 처리하는데 효율적이고 고속의 메모리 기반 데이터 구조를 제공합니다. NumPy는 과학적 계산을 위한 Python 패키지로, 배열 데이터를 다루는데 특화되어 있습니다. 이번 블로그에서는 Arrow와 NumPy를 함께 사용하여 데이터를 처리하는 방법에 대해 알아보겠습니다.

Arrow와 NumPy의 설치

먼저, Arrow와 NumPy를 설치해야 합니다. 아래 명령어를 사용해서 설치할 수 있습니다.

pip install apache-arrow numpy

NumPy 배열을 Arrow로 변환하기

NumPy 배열을 Arrow로 변환하는 것은 매우 간단합니다. arrow.array() 함수를 사용하여 NumPy 배열을 Arrow 배열로 변환할 수 있습니다. 아래는 예시 코드입니다.

import numpy as np
import pyarrow as pa

# NumPy 배열 생성
np_array = np.array([1, 2, 3, 4, 5])

# NumPy 배열을 Arrow로 변환
arrow_array = pa.array(np_array)

# 변환된 Arrow 배열 확인
print(arrow_array)

Arrow 배열을 NumPy로 변환하기

Arrow 배열을 NumPy로 변환하는 것 역시 간단합니다. arrow_array.to_pandas() 메서드를 사용해서 Arrow 배열을 NumPy 배열로 변환할 수 있습니다. 아래는 예시 코드입니다.

import numpy as np
import pyarrow as pa

# Arrow 배열 생성
arrow_array = pa.array([1, 2, 3, 4, 5])

# Arrow 배열을 NumPy로 변환
np_array = arrow_array.to_pandas()

# 변환된 NumPy 배열 확인
print(np_array)

Arrow와 NumPy의 연동 예시

Arrow와 NumPy는 각각 다른 데이터 구조를 사용하기 때문에 두 라이브러리 간의 연동이 필요할 수 있습니다. 이를 위해 pyarrow.Table.from_pandas() 메서드를 사용해서 NumPy 배열을 Arrow 테이블로 변환할 수 있습니다. 아래는 예시 코드입니다.

import numpy as np
import pandas as pd
import pyarrow as pa

# NumPy 배열 생성
np_array = np.array([1, 2, 3, 4, 5])

# NumPy 배열을 DataFrame으로 변환
df = pd.DataFrame({'column': np_array})

# DataFrame을 Arrow 테이블로 변환
table = pa.Table.from_pandas(df)

# 변환된 Arrow 테이블 확인
print(table)

Arrow와 NumPy의 연동을 통해 데이터를 처리하는 과정을 살펴보았습니다. 이러한 연동은 대용량의 데이터를 효율적으로 다루는데 큰 도움이 될 수 있습니다. 추가로 Arrow와 NumPy의 다양한 기능과 메서드를 탐색하며 데이터 처리 작업을 더욱 효율적으로 수행해보시기 바랍니다.

참고 자료