2017-02-16 3 views
0

ich eine CSV-Datei, die folgende enthält die Namen TEMP2.csv haben laden:Wie CSV-Datei zu Matrix Python

Dies ist, wie ich lese die Datei

1376460059,4,33.29,33.23,33.23,33.29,33.23,33.29,33.29,33.29,33.33,33.29,33.33,33.29,33.33,33.33,33.37,33.33,33.33,33.33,33.33,33.37,33.37,33.37,33.37

:

import csv 
import numpy as np 

data = np.genfromtxt('TEMP2.csv',delimiter=',', skip_header=2) 

Nach dem Überspringen der ersten zwei Nummer muss ich die nächsten 4 Zahlen zu einer ersten Zeile in einer Matrix hinzufügen. Die nächsten 4 in der zweiten Reihe in der gleichen Matrix und so weiter.

Aber das funktioniert einfach nicht, ich bin wirklich neu zu Python seit einigen Tagen versucht und immer noch bekomme ich nicht die Ergebnisse. Ich werde deine Hilfe so sehr schätzen. Vielen Dank.

+0

Was ist 'dtype' und' shape' von 'data'? – hpaulj

+0

Dies kann Ihr Problem lösen http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks –

+0

Datentyp "float" nicht wirklich sicher abobut die Form. –

Antwort

0

Vielleicht brauchen Sie reshape. Und fügen Sie Null am Ende des Arrays, wenn es nicht umformen kann.

COLUMN_NUM = 4 
data = np.genfromtxt('a.csv', delimiter=',')[2:] 

if data.shape[0] % 4 == 0: 
    print data.reshape((-1, 4)) 
else: 
    data = np.pad(data, (0, COLUMN_NUM - len(data) % COLUMN_NUM), 'constant') 
    print data.reshape((-1, COLUMN_NUM)) 

Die neue Form sollte mit der ursprünglichen Form kompatibel sein. neu gestalten So erfolgreich, werden Sie dieses Ergebnis:

[[ 33.29 33.23 33.23 33.29] 
[ 33.23 33.29 33.29 33.29] 
[ 33.33 33.29 33.33 33.29] 
[ 33.33 33.33 33.37 33.33] 
[ 33.33 33.33 33.33 33.37] 
[ 33.37 33.37 33.37 33.11]] 

Hoffnung, das hilft.

+0

Das hilft mir sehr @McGrady. Könntest du mir bitte hier helfen: Diese erste Nummer ist ein Unix Timestamp. Die Sekunde ist die Frequenz die Restnummer, wo erzeugt wird. Was wäre der beste Weg, die Zeit zu kennen, in der sie generiert wurden? –

+0

@CristianJEstrada Sehen Sie sich [Konvertieren von Unix-Timestamp-String zu lesbarem Datum] (http://stackoverflow.com/questions/3682748/converting-unix-timestamp-string-to-readable-date-in-python) – McGrady

+0

werde ich , ich habe auch versucht, den Mittelwert aus der ersten Reihe zu bekommen, aber stattdessen wird es mir den Mittelwert aus allem geben. –