2013-02-27 2 views
4

sklearn을 사용하여 mydataset = datasets.load_digits()과 같이 사전 정의 된 데이터 세트를 사용할 수 있음을 확인했습니다. 데이터 세트 mydataset.data의 배열 (numpy 배열?)과 해당 배열 레이블 mydataset.target. 그러나 sklearn과 함께 사용할 수 있도록 자체 데이터 집합을로드하고 싶습니다. 어떻게 그리고 어떤 형식으로 데이터를로드해야합니까? 당신이있는 경우sklearn과 함께 사용하기 위해 파일에서 데이터 세트로드

-0.2080,0.3480,0.3280,0.5040,0.9320,1.0000,label1 
-0.2864,0.1992,0.2822,0.4398,0.7012,0.7800,label3 
... 
... 
-0.2348,0.3826,0.6142,0.7492,0.0546,-0.4020,label2 
-0.1856,0.3592,0.7126,0.7366,0.3414,0.1018,label1 

답변

10

당신은, (http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html)

import numpy as np 
mydata = np.genfromtxt(filename, delimiter=",") 

그러나 파일에서 데이터를 검색 할 수 NumPy와의 genfromtxt 기능을 사용할 수 있습니다 내 파일의 형식은 다음 (각 행은 데이터 포인트입니다) genfromtxt를 사용하는 텍스트 열은 데이터 유형을 지정해야하므로 까다 롭습니다.

그것은 우수한 팬더 라이브러리 (http://pandas.pydata.org/)

import pandas as pd 
mydata = pd.read_csv(filename) 
target = mydata["Label"] #provided your csv has header row, and the label column is named "Label" 

#select all but the last column as data 
data = mydata.ix[:,:-1] 
+0

이 어떻게 (straings 있습니다) 레이블을 얻을 수있는 첫 번째 mathod의 np.genfromtxt를 사용하여 데이터 (부동 소수점 값)을 훨씬 쉽게 될 것인가? – shn

+0

이것이 내가 원하는 것 같아, 그렇지? 'label = np.genfromtxt (filename, delimiter = ',', usecols = -1, dtype = str)' 'data = np.genfromtxt (파일명, 구분자 = ',') [:, : – shn

+0

우선 numpy 행렬을 사용하려면 숫자 레이블을 사용해야합니다. 그 말로는 mydata = np.genfromtxt (filename, delimiter = ",", dtype = [('A', float), ..., ('F', float), ('Label ','S6 ')]). 그런 다음 mydata [[ "A", ..., "F"]] 및 mydata [ "Label"]로 데이터 및 레이블에 액세스 할 수 있습니다. –

관련 문제