Seite 1 von 1

np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 09:34
von incoggnito
Hallo Zusammen,

irgendwie finde ich nicht die richtige Syntax um zwei Vektoren in zwei Spalten einer csv einzufügen.
Zeilenweise stellt kein Problem dar!

Könnt ihr mir ein Codesample zeigen, wie ihr sowas macht?

Viele Grüße
Inco

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 10:04
von Sirius3
@incoggnito: zuerst mußt Du aus den Vektoren eine nx2-Matrix machen. Dann sollte das Speichern kein Problem sein.

Code: Alles auswählen

ab = np.hstack([a[:,None], b[:,None]])

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 11:10
von incoggnito
funzt leider nicht, die Tabelle in python passt, ... im csv wird alles in eine Spalte geschrieben.
Brauche ich dafür einen speziellen Delimiter?

Code: Alles auswählen

data= hstack([D[:,None],ef[:,None]])
savetxt(csvfile, data)

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 12:06
von Sirius3
wie sehen denn D und ef aus?

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 12:31
von incoggnito
Aktuell so:

D --> float64 (1, )--> array(58.9....)
ef --> float64 (1, ) --> array(5159.6...)

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 12:45
von incoggnito
Hat sich erledigt:

Code: Alles auswählen

data= hstack([D[:,None],ef[:,None]])
savetxt(csvfile, data, fmt="%2.3f", delimiter=';', newline='\n')
Versteh zwar nicht, warum das im .txt mit dem Tabstopp nicht genauso funktioniert ... aber dann halt so.

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 13:12
von incoggnito
Etwas off Topic, aber wie schafft man es die Dezimaltrennzeichen durch Kommas zu ersetzen?

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 27. April 2017, 14:44
von noisefloor
Hallo,

Computer nutzen die amerikanischen Notation, d.h. der Punkt trennt die Nachkommastellen ab. Bei Excel & Co kann man das halt über die lokalen Ländereinstellungen ändern. NumPy kann das AFAIK nicht, Pandas kann es wohl aber.

Du könntest auf die exportierte CSV Datei noch ein Skript loslassen, was die Punkte durch Kommas ersetzt. Oder, falls es um den Export in eine Tabellenkalkulation geht, der Tabellenkalkulation beim Import mitteilen, dass das Trennzeichen für die Nachkommastellen ein Punkt ist.

Gruß, noisefoor

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 4. Mai 2017, 08:58
von incoggnito
hallo,

wie macht man mit pandas ein .csv, dass statt den Punkten bei den Nachkommastellen Kommas ausgibt?

gruß inco

Re: np.Array in csv spaltenweise einfügen

Verfasst: Donnerstag 4. Mai 2017, 09:36
von noisefloor
Hallo,

die Methode `to_csv' eines Dataframes kennt das (optional) Argument `decimal`, mit dem du das Trennzeichen festlegen kannst. Doku: http://pandas.pydata.org/pandas-docs/st ... o_csv.html

Gruß, noisefloor

Re: np.Array in csv spaltenweise einfügen

Verfasst: Freitag 5. Mai 2017, 06:25
von incoggnito
Hat so mit dem numpy.array geklappt:

Code: Alles auswählen

Array1=Matrix1[:,0]
Array2=Matrix2[:,0]

csvfile=path2result + name + '.csv'
Data= hstack([Array1[:,None],Array2[:,None]])
df = DataFrame(Data, columns=['Spaltenname1','Spaltenname2'])
df.to_csv(csvfile, index=False, sep=';', decimal=',',float_format='%.3f')
VG Inco