Seite 1 von 1

Matrix dividieren und als txt. speichern

Verfasst: Dienstag 12. Januar 2021, 12:59
von randolphsir
Hallo,

Ich habe ein .txt file mit ganzen Zahlen, in Spalten und Zeilen (siehe Beispiel). Ich möchte jede dieser Zahlen durch 2 Teilen.
Mein Ansatz bisher scheint mir etwas umständlich und ich komme nun auch nicht mehr weiter.


Beispiel Intput:(Tab - getrenntes txt.file)

2 0 4 2
0 4 8 2

gewünschtes Ergebnis:(Tab - getrenntes txt.file)

1 0 2 1
0 2 4 1

(Meine echten Daten bestehen aus 20 Spalten und mehreren Tausend Zeilen.)

###
data = open("file.txt", "r")
file_contents = data.read()

#tabs entfernen
content = [x.strip() for x in file_contents]

# als liste formatieren
str_list = list(filter(None, content))

#integer statt string
results = list(map(int, str_list))

#alle werte teilen
divided = [x / 2 for x in results]

--> [1, 0, 2, 1, 0, 2, 4, 1 ]

divided ist jetzt also eine liste mit den Werten die ich brauche. Jetzt möchte ich sie aber zurück in die Ursprüngliche Formatierung bringen, also ein txt.file in Spalten und Zeilen.

Vielleicht hat ja jemand eine Idee wie ich das hinbekommen könnte, bzw. auch über Vorschläge für völlig neue Ansätze wäre ich sehr dankbar.

Re: Matrix dividieren und als txt. speichern

Verfasst: Dienstag 12. Januar 2021, 14:50
von einfachTobi
Der Einfachheit und der Performance halber würde ich hier zu NumPy raten.
Das sähe dann so aus (ungetestet):

Code: Alles auswählen

import numpy as np
daten = np.loadtxt("file.txt", delimiter="\t")
np.savetxt("divided.txt", daten/2.0, delimiter="\t")

Re: Matrix dividieren und als txt. speichern

Verfasst: Dienstag 12. Januar 2021, 14:55
von ThomasL