파일 입출력은 데이터 처리 및 분석에 있어서 중요한 작업입니다. numpy
는 고성능 수치 계산을 위한 파이썬 패키지이며, 파일 입출력 기능도 제공합니다. 이번 블로그 포스트에서는 numpy
를 사용하여 파일을 읽고 쓰는 방법에 대해 알아보겠습니다.
파일 읽기
numpy
는 loadtxt()
함수를 제공하여 텍스트 파일을 읽을 수 있습니다. 이 함수는 기본적으로 공백이나 탭으로 구분된 텍스트 파일을 읽어들여 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
형식으로 읽혀집니다.
파일 쓰기
numpy
는 savetxt()
함수를 사용하여 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
numpy
의 ndarray
객체가 자동으로 float
형식으로 저장됨을 알 수 있습니다. 이러한 형식에 대한 설정은 fmt
매개변수로 수정할 수 있습니다.
np.savetxt('output.txt', data, fmt='%.2f')
위의 코드는 소수점 둘째 자리까지 반올림하여 텍스트 파일로 저장합니다.
바이너리 파일 입출력
numpy
는 텍스트 파일뿐만 아니라 바이너리 파일도 입출력할 수 있습니다. 바이너리 파일은 텍스트 파일에 비해 더 작은 용량을 차지하며, 더 빠른 입출력이 가능합니다.
바이너리 파일로 저장할 때는 numpy
의 save()
함수를 사용하고, 바이너리 파일로부터 데이터를 읽어올 때는 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
의 이러한 기능들을 적극 활용해 보세요!
참고 자료: