sklearn scikit make load_iris learn datasets create python scikit-learn

python - make - ¿Cómo importar un archivo de datos csv en scikit-learn?



sklearn import mnist (4)

Según tengo entendido, el scikit-learn acepta datos en formato (n-sample, n-feature) que es una matriz 2D. Suponiendo que tengo datos en el formulario ...

Stock prices indicator1 indicator2 2.0 123 1252 1.0 .. .. .. . . .

¿Cómo importo esto?


Use numpy para cargar csvfile

import numpy as np dataset = np.loadtxt(''./example.csv'', delimiter='','')


Este no es un archivo CSV; Esto es solo un archivo separado por espacios. Suponiendo que no falten valores, puede cargarlo fácilmente en una matriz Numpy llamada data con

import numpy as np f = open("filename.txt") f.readline() # skip the header data = np.loadtxt(f)

Si el precio de las acciones es lo que desea predecir (su valor de y , en términos de scikit-learn), entonces debe dividir los data usando

X = data[:, 1:] # select columns 1 through end y = data[:, 0] # select column 0, the stock price

Alternativamente, puede aplicar el módulo csv Python estándar para manejar este tipo de archivo.


Puedes buscar la función loadtxt en numpy .

Para obtener las entradas opcionales en el método loadtxt.

Un cambio simple para CSV es

data = np.loadtxt(fname = f, delimiter = '','')


Una muy buena alternativa para numpy loadtxt es read_csv de Pandas . Los datos se cargan en un marco de datos de Pandas con la gran ventaja de que puede manejar tipos de datos mixtos, como algunas columnas que contienen texto y otras columnas que contienen números. Luego, puede seleccionar fácilmente solo las columnas numéricas y convertirlas a una matriz as_matrix con as_matrix . Pandas también leerá / escribirá archivos de Excel y un montón de otros formatos .

Si tenemos un archivo csv llamado "mydata.csv":

point_latitude,point_longitude,line,construction,point_granularity 30.102261, -81.711777, Residential, Masonry, 1 30.063936, -81.707664, Residential, Masonry, 3 30.089579, -81.700455, Residential, Wood , 1 30.063236, -81.707703, Residential, Wood , 3 30.060614, -81.702675, Residential, Wood , 1

Esto se leerá en el csv y convertirá las columnas numéricas en una matriz numpy para scikit_learn, luego modificará el orden de las columnas y las escribirá en una hoja de cálculo de Excel:

import numpy as np import pandas as pd input_file = "mydata.csv" # comma delimited is the default df = pd.read_csv(input_file, header = 0) # for space delimited use: # df = pd.read_csv(input_file, header = 0, delimiter = " ") # for tab delimited use: # df = pd.read_csv(input_file, header = 0, delimiter = "/t") # put the original column names in a python list original_headers = list(df.columns.values) # remove the non-numeric columns df = df._get_numeric_data() # put the numeric column names in a python list numeric_headers = list(df.columns.values) # create a numpy array with the numeric values for input into scikit-learn numpy_array = df.as_matrix() # reverse the order of the columns numeric_headers.reverse() reverse_df = df[numeric_headers] # write the reverse_df to an excel spreadsheet reverse_df.to_excel(''path_to_file.xls'')