Converteren van CSV naar array in Python

Ik heb een CSV-bestand met het volgende.

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

Ik wil de waarden converteren naar een array in Python en dezelfde volgorde behouden (rij en kolom). Hoe kan ik dit bereiken?

Ik heb verschillende functies geprobeerd, maar eindigde met een fout.


Antwoord 1, autoriteit 100%

U moet de module csvgebruiken:

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)

Dit geeft:

[[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]]

Antwoord 2, autoriteit 21%

Als uw bestand geen haakjes bevat

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

Antwoord 3, autoriteit 14%

De module csvis speciaal hiervoor gemaakt. De volgende implementatie van de module is rechtstreeks overgenomen uit de Python-documenten.

import csv 
with open('file.csv','rb') as csvfile: 
    reader = csv.reader(csvfile, delimiter=',', quotechar='|') 
    for row in reader:
        #add data to list or other data structure

Het scheidingsteken is het teken dat gegevensinvoer scheidt, en het aanhalingsteken is het aanhalingsteken.

Other episodes