2016-09-28 7 views
0

genfromtxt를 사용하여 가져올 여러 데이터 파일이 있습니다. 각 데이터 파일에는 다른 내용이 있습니다. 예를 들어, 파일 1은 모든 수레를 가질 수 있고 파일 2는 모든 문자열을 가질 수 있으며 파일 3은 수레와 문자열의 조합을 가질 수 있습니다. 또한 열 수는 파일마다 다르며 수백 개의 파일이 있으므로 어떤 열이 각 파일의 수와 문자열인지 알지 못합니다. 그러나 각 열의 모든 항목은 동일한 데이터 유형입니다.numpy/python에서 genfromtxt를 사용하여 문자열을 자동으로 변환하고 플로트합니다.

genfromtxt 용 변환기를 설정하여 각 열의 데이터 형식을 감지하고 올바른 데이터 형식으로 변환하는 방법이 있습니까?

감사합니다. 당신은 팬더 라이브러리를 사용 할 수 있다면

+0

팬더를 사용할 수 있습니까? ''pandas.readcsv''는''numpy.genfromtxt''보다 훨씬 강력하며 자동으로이 모든 작업을 수행합니다. – jakevdp

+0

문제는 추가 처리를 위해 출력을 수적으로 배열로 변환 할 수 있어야한다는 것입니다. datafame.as_matrix()가 객체 배열을 반환한다고 들었습니다. 따라서 genfromtxt를 사용하는 것을 선호합니다. –

+0

'''dataframe.to_records()''는 당신에게 아마도 당신이 원하는 레코드 배열을 줄 것이다. 혼합형을 numpy 배열로 저장하는 것은 레코드 배열이나 객체 배열을 통해서만 수행 할 수 있습니다. – jakevdp

답변

1

pandas.read_csv 더 일반적으로 유용 np.genfromtxt보다 훨씬, 그리고 자동으로 귀하의 질문에 언급 된 타입 추론의 종류를 처리합니다. 결과는 데이터 프레임이되지만 몇 가지 방법 중 하나로 numpy 배열을 가져올 수 있습니다. 예 :

import pandas as pd 
data = pd.read_csv(filename) 

# get a numpy array; this will be an object array if data has mixed/incompatible types 
arr = data.values 

# get a record array; this is how numpy handles mixed types in a single array 
arr = data.to_records() 

pd.read_csv에는 다양한 형태의 텍스트 입력 옵션이 있습니다. 자세한 내용은 pandas.read_csv documentation을 참조하십시오.