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.
y = np.loadtxt("test3.txt",
delimiter=" ",
skiprows=1,
usecols=(4))
Mit skiprows=1 bekomme ich jedoch nur die erste zeile weg, kennt wer einen weg wo ich die ersten 5 Zeilen weg bekomme und tatsächlich nur die fett markierten werte einlesen kann??
Traceback (most recent call last):
File "txt_output.py", line 9, in <module>
results = np.loadtxt ("test3.txt",
File "/usr/local/lib64/python3.8/site-packages/numpy/lib/npyio.py", line 1139, in loadtxt
for x in read_data(_loadtxt_chunksize):
File "/usr/local/lib64/python3.8/site-packages/numpy/lib/npyio.py", line 1067, in read_data
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "/usr/local/lib64/python3.8/site-packages/numpy/lib/npyio.py", line 1067, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "/usr/local/lib64/python3.8/site-packages/numpy/lib/npyio.py", line 763, in floatconv
return float(x)
ValueError: could not convert string to float: ''
nicht daran, dass ich bereits [4] als skiprows eingegeben habe,...
Danke, funktioniert soweit mit skiprows und usecols, ohne den Rest.
Was noch nicht ganz klappt ist, dass mir die Werte in mehreren Zeilen aufgeteilt wird, sodass es beim erneuten schreiben in ein TXT wieder nicht in einer Zeile geschrieben wird, wie kann ich das verhindern?
@fox1203: Du musst es halt richtig machen. Also nicht den Fehler machen den hier keiner kennt, weil ausser Dir ja keiner weiss was Du da beim schreiben machst.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
import numpy as np
results = np.loadtxt ("test3.txt",
skiprows = 5,
usecols = [3])
test = open ("test.txt", "w")
test.write (str(results))
print(results)
Die Daten im Test3.txt File sind untereinander angeordnet, beim Schreiben in test.txt werden diese in mehreren Zeilen aufgeteilt und haben am Anfang und am Ende ein [ bzw ]. Die eckigen Klammern müssen weg und die Daten in einer Zeile geschrieben werden.
Kannst du nun damit was anfangen, bzw. einen richtigen Weg nennen?
dieser abschnitt des codes wird in eine bestehenden file.write code eingefügt, sind also die messergebnisse, welche im anschluss an den zuvor geschriebenen eingabewerten in einer zeile hinzugefügt werden sollen, daher die oben beschriebene variante.
ist da eine möglichkeit die eckiegn klammern, sowie zeilenumbrüche wegzubekommen, oder siehst du da keine chanche?
@fox1203: Natürlich sehe ich da eine Chance. Ich schrob ja bereits das Numpy auch zum schreiben Funktionen hat. Und genau wie bei denen zum lesen kann man da statt eines Dateinamens auch ein Dateiobjekt übergeben.
Ansonsten kann man natürlich auch selbst nicht das gesamte Objekt einfach in eine Zeichenkette umwandeln sondern die Werte einzeln umwandeln und in die Datei schreiben. Zusammen mit einem Zeilenendezeichen pro Wert.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
thx, nach langem probieren hab ich zumindest geschafft, dass die werte analog zum eingelesenen txt file geschrieben werden, dh getrennt mit \n mit folgendem code:
jetzt stellt sich noch die Frage, wie man np.savetext dazu bringt, die Werte in einer Zeile mit delimiter "," zu schreiben. mit dem befehl newline="," bekomme ich zwar ein , als trennzeichen, jedoch auch ein leerzeichen UND die zeilenumbrüche sind auch wieder da?
sag mal eine andere frage, da mein script ja nun eine iteration eines berechnugsmodul darstellt, wäre es interessant wie lange zB 100 iterationsläufe dauern, um ein gefühl zu bekommen wie lange 500tsd iterationen dauern werden. kennst du da eine möglichkeit, zB ein print am ende des script wie lange die laufzeit war?
Bei temp_data handelt es sich offensichtlich tatsächlich um Temperaturen und nicht um temptation wie ich zuerst gehofft hatte. Benutze keine Abkürzungen.
Du mußt den Zeilenvektor in einen Spaltenvektor umwandeln:
Ich weiß nicht genau, was du vor hast, aber vorsichtshalber schon mal der Tipp: Man iteriert (fast) nie über Numpy-Arrays. Wenn man das tut, macht man in der Regel etwas falsch.