[파이썬][numpy] numpy에서 numpy에서 파일 입출력

파일 입출력은 데이터 처리 및 분석에 있어서 중요한 작업입니다. numpy는 고성능 수치 계산을 위한 파이썬 패키지이며, 파일 입출력 기능도 제공합니다. 이번 블로그 포스트에서는 numpy를 사용하여 파일을 읽고 쓰는 방법에 대해 알아보겠습니다.

파일 읽기

numpyloadtxt() 함수를 제공하여 텍스트 파일을 읽을 수 있습니다. 이 함수는 기본적으로 공백이나 탭으로 구분된 텍스트 파일을 읽어들여 ndarray 객체로 반환합니다. 예를 들어, data.txt 파일에는 다음과 같은 데이터가 포함되어 있다고 가정해 봅시다.

1 2 3
4 5 6
7 8 9

다음 코드는 loadtxt() 함수를 사용하여 data.txt 파일을 읽고 ndarray 객체로 변환하는 예제입니다.

import numpy as np

data = np.loadtxt('data.txt')

print(data)

출력 결과는 다음과 같을 것입니다.

[[1. 2. 3.]
 [4. 5. 6.]
 [7. 8. 9.]]

텍스트 파일 내의 각 숫자는 float 형식으로 읽혀집니다.

파일 쓰기

numpysavetxt() 함수를 사용하여 ndarray 객체를 텍스트 파일로 저장할 수도 있습니다. 예를 들어, 아래 코드는 data 배열을 output.txt 파일에 저장하는 예제입니다.

import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

np.savetxt('output.txt', data)

이 코드를 실행하면 output.txt 파일이 생성되고, 내용은 다음과 같을 것입니다.

1.000000000000000000e+00 2.000000000000000000e+00 3.000000000000000000e+00
4.000000000000000000e+00 5.000000000000000000e+00 6.000000000000000000e+00
7.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00

numpyndarray 객체가 자동으로 float 형식으로 저장됨을 알 수 있습니다. 이러한 형식에 대한 설정은 fmt 매개변수로 수정할 수 있습니다.

np.savetxt('output.txt', data, fmt='%.2f')

위의 코드는 소수점 둘째 자리까지 반올림하여 텍스트 파일로 저장합니다.

바이너리 파일 입출력

numpy는 텍스트 파일뿐만 아니라 바이너리 파일도 입출력할 수 있습니다. 바이너리 파일은 텍스트 파일에 비해 더 작은 용량을 차지하며, 더 빠른 입출력이 가능합니다.

바이너리 파일로 저장할 때는 numpysave() 함수를 사용하고, 바이너리 파일로부터 데이터를 읽어올 때는 load() 함수를 사용합니다. 예를 들어, 다음 코드는 data 배열을 output.bin 바이너리 파일로 저장하고, 다시 읽어들여 loaded_data 배열로 변환합니다.

import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

np.save('output.bin', data)

loaded_data = np.load('output.bin')

print(loaded_data)

위의 코드를 실행하면 바이너리 파일인 output.bin이 생성되고, loaded_data 배열에는 다음과 같은 내용이 담겨있을 것입니다.

[[1 2 3]
 [4 5 6]
 [7 8 9]]

파일 입출력은 데이터 분석과 처리에서 아주 중요한 부분입니다. numpy는 텍스트 파일 뿐만 아니라 바이너리 파일도 손쉽게 입출력할 수 있는 기능을 제공합니다. loadtxt(), savetxt(), load(), save() 함수들을 적절하게 사용하여 데이터를 읽고 쓸 수 있습니다. 앞으로의 프로젝트에서 파일 입출력이 필요한 경우, numpy의 이러한 기능들을 적극 활용해 보세요!

참고 자료: