2016-05-11 31 views
-1

Ich habe eine CSV-Datei, die Folgendes enthält.In CSV in Array in Python konvertieren

0.000264,0.000352,0.000087,0.000549 
0.00016,0.000223,0.000011,0.000142 
0.008853,0.006519,0.002043,0.009819 
0.002076,0.001686,0.000959,0.003107 
0.000599,0.000133,0.000113,0.000466 
0.002264,0.001927,0.00079,0.003815 
0.002761,0.00288,0.001261,0.006851 
0.000723,0.000617,0.000794,0.002189 

Ich möchte, um die Werte in einem Array in Python konvertieren und zu halten, in der gleichen Reihenfolge (Zeile und Spalte). Wie kann ich das Gleiche erreichen?

Ich habe verschiedene Funktionen ausprobiert, aber mit Fehler beendet.

+0

Was ist ein Fehler? und wie willst du die csv-datei lesen? verwendest du das 'csv' Modul? –

+0

ist kein Fehler, ich weiß nicht, wie in CVS zu Array konvertieren –

+0

Fragen, die Debugging-Hilfe (** "Warum funktioniert dieser Code nicht?" **) muss das gewünschte Verhalten, * ein spezifisches Problem oder Fehler * und enthalten * Der kürzeste Code erforderlich *, um es ** in der Frage selbst zu reproduzieren **. Fragen ohne ** eine klare Problemstellung ** sind für andere Leser nicht nützlich. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). – MattDMo

Antwort

1

sollten Sie verwenden das csv Modul:

import csv 

results = [] 
with open("input.csv") as csvfile: 
    reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) # change contents to floats 
    for row in reader: # each row is a list 
     results.append(row) 

Das gibt:

[[0.000264, 0.000352, 8.7e-05, 0.000549], 
[0.00016, 0.000223, 1.1e-05, 0.000142], 
[0.008853, 0.006519, 0.002043, 0.009819], 
[0.002076, 0.001686, 0.000959, 0.003107], 
[0.000599, 0.000133, 0.000113, 0.000466], 
[0.002264, 0.001927, 0.00079, 0.003815], 
[0.002761, 0.00288, 0.001261, 0.006851], 
[0.000723, 0.000617, 0.000794, 0.002189]] 
1

Wenn Ihre Datei enthält keine Klammern

with open('input.csv') as f: 
    output = [float(s) for line in f.readlines() for s in line[:-1].split(',')] 
    print(output); 
+0

Ich nehme an, das OP will die ursprünglichen schwimmt, nicht Strings ... – MattDMo

+0

Ja, ich die ursprüngliche float, eine pro Zelle im Array. @MattDMo –

+0

@EdianFranklinFrancodelosS siehe aktualisierte Antwort –

0

Das csv Modul erstellt wurde, zu tun nur das. Die folgende Implementierung des Moduls ist direkt aus der Python docs übernommen.

Das Trennzeichen ist das Zeichen, das Dateneinträge trennt, und das quotechar ist das quitchechar.