2DArray als neue Spalten in vorhandenes Array einfügen(numpy

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Selda
User
Beiträge: 4
Registriert: Mittwoch 25. August 2010, 08:16

Hallo!
Ich bin noch ein relativer Programmier-Frischling, also entschuldigt bitte ungenaue Ausdrücke oder doofe Fragen...

Ich habe zwei Tabellen mit mehreren Spalten (enthalten ausschließlich Zahlen), die ich mit genfromtxt einlese (von einem Trennzeichen-getrennten txt-File, funktioniert soweit).
Jetzt möchte ich diese beiden Tabellen zu einer Tabelle zusammenfügen, also die Spalten aus Tabelle 2 in Tabelle 1 als neue Spalten anfügen.
Dazu habe ich die Funktionen hstack und concatenate gefunden. Beide funktionieren, solange ich für meine Arrays keine Spaltennamen (names) definiere, bzw. unterschiedliche dtypes (ich habe theoretisch int und float). Da ich jedoch eine ganze Menge solcher Tabellen hinten anfügen möchte, brauche ich unbedingt die Spaltennamen, da es sonst im Nachhinein schwierig wird, diese wieder zu identifizieren.
Gibt es eine Möglichkeit, Arrays mit Spaltennamen hintereinanderzuhängen? Noch besser wäre auch, wenn ich unterschiedliche dtypes verwenden könnte, aber notfalls kann ich auch alles in float umwandeln.

Hier noch ein bisschen Code, wie ich ihn verwende:

So funktionierts:

Code: Alles auswählen

table1 = np.genfromtxt(dateiaktuell, delimiter=";", skip_header=1)
table2 = np.genfromtxt(dateiaktuell2, delimiter=";", skip_header=1)
np.hstack((table1,table2))
so jeweils nicht:

Code: Alles auswählen

table1 = np.genfromtxt(dateiaktuell, delimiter=";", skip_header=1, dtype = (int, float, float,int,int,int))
table2 = np.genfromtxt(dateiaktuell2, delimiter=";", skip_header=1, dtype = (int, float))
np.hstack((table1,table2))

table1 = np.genfromtxt(dateiaktuell, delimiter=";", names=True)
table2 = np.genfromtxt(dateiaktuell2, delimiter=";", names=True)
np.hstack((table1,table2))
und die Fehlermeldung lautet:

Code: Alles auswählen

return _nx.concatenate(map(atleast_1d,tup),1)
TypeError: expected a readable buffer object
Hat jemand eine Idee?
Vielen Dank für jede Hilfe!
Selda
Antworten