# Sebastian Raschka, 03/2014 def read_csv(csv_path): """ Read a csv file (with a header) into a dictionary where the dictionary structure will be {header_col1: [val1_line1, val1_line2, ...], header_col2: [val2_line1, val2_line2, ...], ...} """ with open(csv_path, 'r') as in_csv: header = in_csv.readline().strip().split(',') data = {i:[] for i in header} for line in in_csv: line = line.strip().split(',') for i in range(len(line)): try: data[header[i]].append(float(line[i])) except ValueError: data[header[i]].append(line[i]) return data