Python, NumPy, Scipy를 사용하여 CSV 데이터를 NumPy 레코드 배열로 읽는 방법
Python, NumPy, Scipy를 사용하여 CSV 데이터를 NumPy 레코드 배열로 읽는 방법
이 글에서는 Python, NumPy, Scipy 라이브러리를 사용하여 CSV 파일을 NumPy 레코드 배열로 읽는 방법을 설명합니다.
필수 라이브러리
이 작업을 수행하려면 다음 라이브러리가 설치되어 있어야 합니다.
방법
다음은 CSV 데이터를 NumPy 레코드 배열로 읽는 방법의 세 가지 방법입니다.
genfromtxt 함수 사용
genfromtxt
함수는 CSV 파일을 NumPy 배열로 직접 읽는 데 사용할 수 있습니다.
import numpy as np
# CSV 파일 읽기
data = np.genfromtxt('data.csv', delimiter=',')
# 데이터 확인
print(data)
pandas 라이브러리 사용
pandas
라이브러리는 CSV 파일을 다루는 데 유용한 도구입니다.
import pandas as pd
# CSV 파일 읽기
data = pd.read_csv('data.csv')
# NumPy 레코드 배열로 변환
data = data.to_records(index=False)
# 데이터 확인
print(data)
scipy.io.readcsv 함수 사용
scipy.io.readcsv
함수는 CSV 파일을 NumPy 레코드 배열로 읽는 데 사용할 수 있습니다.
from scipy.io import readcsv
# CSV 파일 읽기
data = readcsv('data.csv')
# 데이터 확인
print(data)
참고:
- 위 코드에서
data.csv
는 CSV 파일 이름입니다. 실제 파일 이름으로 변경해야 합니다. delimiter
매개변수는 CSV 파일의 구분자를 지정하는 데 사용됩니다. 기본값은 ','입니다.dtype
매개변수는 각 열의 데이터 형식을 지정하는 데 사용됩니다.
예제 코드: CSV 데이터를 NumPy 레코드 배열로 읽기
import numpy as np
# CSV 파일 경로 지정
data_path = "data.csv"
# CSV 파일 읽기
data = np.genfromtxt(data_path, delimiter=',')
# 데이터 확인
print(data)
import pandas as pd
# CSV 파일 경로 지정
data_path = "data.csv"
# CSV 파일 읽기
df = pd.read_csv(data_path)
# NumPy 레코드 배열로 변환
data = df.to_records(index=False)
# 데이터 확인
print(data)
from scipy.io import readcsv
# CSV 파일 경로 지정
data_path = "data.csv"
# CSV 파일 읽기
data = readcsv(data_path)
# 데이터 확인
print(data)
설명:
주의:
- CSV 파일이 올바른 형식인지 확인하십시오.
- 데이터 형식이 예상대로인지 확인하십시오.
CSV 데이터를 NumPy 레코드 배열로 읽는 대체 방법
csv 모듈 사용
표준 csv
모듈을 사용하여 CSV 파일을 읽고 수동으로 NumPy 레코드 배열로 변환할 수 있습니다.
import csv
import numpy as np
# CSV 파일 열기
with open('data.csv', 'r') as f:
# CSV reader 객체 만들기
reader = csv.reader(f)
# 데이터 읽기
data = []
for row in reader:
data.append(row)
# 데이터를 NumPy 레코드 배열로 변환
data = np.array(data, dtype='str')
# 데이터 확인
print(data)
itertools.islice 및 numpy.fromiter 사용
itertools.islice
및 numpy.fromiter
함수를 사용하여 CSV 파일을 차례대로 읽고 NumPy 레코드 배열로 변환할 수 있습니다.
import itertools
import numpy as np
# CSV 파일 열기
with open('data.csv', 'r') as f:
# CSV reader 객체 만들기
reader = csv.reader(f)
# 첫 번째 행 건너뛰기 (헤더 행 제외)
next(reader)
# 데이터 읽기
data = list(itertools.islice(reader, None))
# 데이터를 NumPy 레코드 배열로 변환
data = np.fromiter(data, dtype='str')
# 데이터 확인
print(data)
custom 함수 사용
사용자 정의 함수를 만들어 CSV 파일을 읽고 원하는 형식으로 데이터를 변환할 수 있습니다.
import numpy as np
def read_csv_to_recarray(filename, delimiter=',', dtype='str'):
"""
CSV 파일을 읽고 NumPy 레코드 배열로 변환합니다.
Args:
filename (str): CSV 파일 경로.
delimiter (str): 구분자 문자.
dtype (str): 데이터 형식.
Returns:
numpy.recarray: NumPy 레코드 배열.
"""
with open(filename, 'r') as f:
# 데이터 읽기
data = []
for row in f:
data.append(row.strip().split(delimiter))
# 데이터를 NumPy 레코드 배열로 변환
data = np.array(data, dtype=dtype)
return data
# 데이터 읽기 및 확인
data = read_csv_to_recarray('data.csv')
print(data)
python numpy scipy