Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: pOT-lnformatik, Mathematik, Physik XXI ( X-Ray-Edition )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 nächste »
erste ungelesene Seite | letzter Beitrag 
Concrete_R

Arctic
 
Zitat von nobody

[...] die von [...] R weg wollen



Mata halt...
16.11.2017 0:18:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Frage
Warum klappt es im obigen Code nicht, zwei Schleifen "for row in reader:" auszuführen?
Ich habe zur Zeit die Anordnung Schleife, Anweisung, Schleife, Anweisung, Schleife. Anweisungen und die erste Schleife werden ausgeführt, die zweite nicht.

Muss ich irgendwie den Laufindex wieder resetten?

Spoken like a true virgin! - Damn straight!
16.11.2017 11:18:43  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
nobody

nobody
? Eigentlich nicht, wenn du die nicht einander verschachtelst. Minimalbeispiel pl0x.

Also meinst du:
 
Code:
for row in reader:
    stuff(row)

for row in reader:
    other_stuff(row)

?
Das sollte gehen.

/e: Ganzen Post lesen, da ist ja Code auf der letzten Seite... ja, das ist ein Iterator, der nach einem Durchgang verbraucht wird.

 
Zitat von Concrete_R

 
Zitat von nobody

[...] die von [...] R weg wollen



Mata halt...



Gibt natürlich auch Masochisten, die das nicht wollen.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von nobody am 16.11.2017 23:04]
16.11.2017 11:57:18  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Genau das funktioniert nicht.Hässlon

 
Code:
csvfile = open('NZMASP17_Abstracts_20171111.csv')
reader = csv.DictReader(csvfile) # Uses first row for naming rows
for row in reader:
    print('you are awesome')
for row in reader:
    print('fuck off')

Klappt nicht.
 
Code:
csvfile = open('NZMASP17_Abstracts_20171111.csv')
reader = csv.DictReader(csvfile) # Uses first row for naming rows
for row in reader:
    print('you are awesome')
csvfile = open('NZMASP17_Abstracts_20171111.csv')
reader = csv.DictReader(csvfile) # Uses first row for naming rows
for row in reader:
    print('fuck off')


Klappt.

Ey. Da wird man doch bekloppt.Wütend

All the cherubims say, "You gotta!" - trust the man with the stigmata!
16.11.2017 12:26:23  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
red

AUP Redh3ad 11.10.2009
Das Problem ist wohl, dass DictReader ein Iterator ist. Wenn der exhausted ist, kann man nicht noch einmal darüber iterieren.

// edit
Ok, du erstellst einen neuen DictReader, allerdings liest der auch vom gleichen file-Objekt, welches auch ein Iterator ist, der nach einmal lesen exhausted ist.
// edit ende

Du müsstest die Zeilen zuerst einmal in eine Liste packen, über die kannst du dann mehrmals iterieren.

 
Code:
rows = list(reader)

for row in rows:
    stuff(row)

for row in rows:
    other_stuff(row)
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von red am 16.11.2017 22:03]
16.11.2017 12:29:17  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Danke. Was ein Abfuck. Wer kommt auf so ein unnützes Ding?!

Ich sage mal so, das ist nichttrivialerweise offensichtlich...
16.11.2017 12:39:36  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
red

AUP Redh3ad 11.10.2009
Naja, pauschal alles cachen geht auch nicht, könnte ja sein, dass dein Input größer ist als dein Arbeitsspeicher.
16.11.2017 12:54:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
derSenner

AUP derSenner 08.04.2020
Ich weiß nicht, wo ich das sonst posten soll:

Ich spiele mich aktuell etwas mit WebGL. Könnte auch LWJGL oder sonst was sein, aber für meine Testzwecke geht das aktuell einfach am schnellsten und einfachsten. Im Endeffekt will ich folgendes erreichen: Ein 3D Modell wird dargestellt. Ich will über x Sensoren das Modell bewegen. Beispiel: Sensor auf den Armen, Brust, Beinen, Kopf, ..., dadurch wird mein Modell lebensnah am Bildschirm bewegt. Soviel zur Idee.

Jetzt habe ich folgendes "Problem", wobei ich dadurch keine direkten Aussagen im Internet finden kann. Vielleicht suche ich nach den falschen Begriffen.
Ich bewege z.B. den Unterarm des Modelles. Je nach Lage, muss sich damit auch die Position des Oberarmes und der Schulter ändern. Sprich, die Bewegung von Bone A wirkt sich auf Bone B und dieser auf Bone C [...] aus. Weiters kann der Unterarm nur in bestimmte Richtungen zu bestimmten Graden rotieren. Wo ist nun der Platz, um diese Beschränkungen und Relationen zu beachten?

1. Im 3D Modell während des Riggings. Wäre nice, da ich dann in meinem Movement-Programm nur noch einzelne Bones beachten muss, nie das ganze Skelett. In Blender konnte ich da jetzt nix direkt finden, aber das Programm ist auch echt Clusterfuck.
2. Während ich das Quaternion oder eine andere Bewegungsvariable des Modelles ändere, muss ich gleichzeitig alle Children des aktuellen Knochens manuell durchchecken. Irgendwie uncool.

Über WebGL habe ich aktuell ein Modell, welches ich einzeln an den Knochen bewegen kann. Toll! Allerdings kann ich z.B. den Unterarm in alle beliebigen Richtungen rotieren lassen, kreuz und quer. Es bewegen sich zwar die Children des Unterarmes wie Hand und Finger mit, aber das bringt mir auch nicht viel.

Mir geht's halt erstmal um das Verständnis eines solchen Systemes.
16.11.2017 15:38:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von red

Naja, pauschal alles cachen geht auch nicht, könnte ja sein, dass dein Input größer ist als dein Arbeitsspeicher.


Was ist ein Iterator, dass er nicht in den RAM muss...? peinlich/erstaunt
16.11.2017 21:52:50  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
red

AUP Redh3ad 11.10.2009
Du hast einen Cursor, der auf eine Stelle in der Datei zeigt. Wenn du die nächste Zeile vom Iterator haben willst, liest er einfach die nächste Zeile aus der Datei und schiebt den Cursor weiter. Also hast du immer nur eine Zeile im RAM.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von red am 16.11.2017 21:57]
16.11.2017 21:56:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Ah.

Verständlich - aber doch nie im Leben der Hauptanwendungsfall eines Nutzers!Wütend Wenn du LHC-Daten in eine csv packst, wirst du bestimmt nicht mit einem Python-Paket an die Datei gehen (und eh die Größe erahnen), und die csv, die Anmeldeformulare generieren, werden den Arbeitsspeicher nicht taxieren.Wütend
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 16.11.2017 22:06]
16.11.2017 22:05:18  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von Wraith of Seth

Ah.

Verständlich - aber doch nie im Leben der Hauptanwendungsfall eines Nutzers!



Doch. Absolut Breites Grinsen
16.11.2017 22:15:23  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Leute hantieren mit möglicherweise gigantischen CSV ohne auf Speicher zu gucken? Du gute Güte!traurig
16.11.2017 22:26:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von Wraith of Seth

Leute hantieren mit möglicherweise gigantischen CSV ohne auf Speicher zu gucken? Du gute Güte!traurig



Ehh?
16.11.2017 22:34:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Virtus

Arctic
missmutig gucken
Dieses Konstrukt gibt es, WEIL man sich Gedanken über den Speicherverbrauch macht.
16.11.2017 22:45:30  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
horscht(i)

AUP horscht(i) 14.09.2014
 
Zitat von Wraith of Seth

Leute hantieren mit möglicherweise gigantischen CSV ohne auf Speicher zu gucken? Du gute Güte!traurig


Lies nochmal.

 
Zitat von red

Also hast du immer nur eine Zeile im RAM.

17.11.2017 0:31:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Nein, ihr versteht mich falsch.Breites Grinsen

Für mich ist eine CSV erstmal eine Tabelle, die man nutzt, weil man kein Office-Paket zur Verfügung hat, d.h. gehe irgendwie davon aus, dass es sinnvoll ist, mehrmals auf die Zeilen zurückzugreifen. Wenn ich jetzt schon mit der Anzahl der Zeilen (denn das macht ja letztlich der Iterator) Probleme im RAM habe, ... ...äh...??

Aber: Ich habe noch nie etwas geschrieben, was mehr als 100 Zeilen Code (oder so in der Größenordnung) hatte, von daher habe ich wahrscheinlich einfach keine Ahnung, und bin nur frustriert, dass es nicht für meinen Pippifax-Anwendungsfall optimiert ist.

Wovon man nicht sprechen kann, darüber muss man schweigen.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Wraith of Seth am 17.11.2017 1:58]
17.11.2017 1:55:58  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Iteratoren sind eine Erfindung der armen Bevölkerung, die kein Geld für genug Arbeitsspeicher hat.
17.11.2017 8:00:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
derSenner

AUP derSenner 08.04.2020
 
Zitat von derSenner

Ich weiß nicht, wo ich das sonst posten soll:

Ich spiele mich aktuell etwas mit WebGL. Könnte auch LWJGL oder sonst was sein, aber für meine Testzwecke geht das aktuell einfach am schnellsten und einfachsten. Im Endeffekt will ich folgendes erreichen: Ein 3D Modell wird dargestellt. Ich will über x Sensoren das Modell bewegen. Beispiel: Sensor auf den Armen, Brust, Beinen, Kopf, ..., dadurch wird mein Modell lebensnah am Bildschirm bewegt. Soviel zur Idee.

Jetzt habe ich folgendes "Problem", wobei ich dadurch keine direkten Aussagen im Internet finden kann. Vielleicht suche ich nach den falschen Begriffen.
Ich bewege z.B. den Unterarm des Modelles. Je nach Lage, muss sich damit auch die Position des Oberarmes und der Schulter ändern. Sprich, die Bewegung von Bone A wirkt sich auf Bone B und dieser auf Bone C [...] aus. Weiters kann der Unterarm nur in bestimmte Richtungen zu bestimmten Graden rotieren. Wo ist nun der Platz, um diese Beschränkungen und Relationen zu beachten?

1. Im 3D Modell während des Riggings. Wäre nice, da ich dann in meinem Movement-Programm nur noch einzelne Bones beachten muss, nie das ganze Skelett. In Blender konnte ich da jetzt nix direkt finden, aber das Programm ist auch echt Clusterfuck.
2. Während ich das Quaternion oder eine andere Bewegungsvariable des Modelles ändere, muss ich gleichzeitig alle Children des aktuellen Knochens manuell durchchecken. Irgendwie uncool.

Über WebGL habe ich aktuell ein Modell, welches ich einzeln an den Knochen bewegen kann. Toll! Allerdings kann ich z.B. den Unterarm in alle beliebigen Richtungen rotieren lassen, kreuz und quer. Es bewegen sich zwar die Children des Unterarmes wie Hand und Finger mit, aber das bringt mir auch nicht viel.

Mir geht's halt erstmal um das Verständnis eines solchen Systemes.


Nur so der Vollständigkeit halber:
"Inverse Kinematics" scheint das Zauberwort zu sein, nach dem ich gesucht habe.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von derSenner am 17.11.2017 8:56]
17.11.2017 8:55:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
RichterSkala

AUP RichterSkala 31.12.2010
 
Zitat von Oli

Iteratoren sind eine Erfindung der armen Bevölkerung, die kein Geld für genug Arbeitsspeicher hat.


mmap ist nur dorniger ram!

WoS, csv.DictReader ist halt eine Abstraktion von einem File Reader - damit du nicht jede Zeile oder gar Zeichen aus einer csv selber lesen musst, entscheiden musst wann ein nächstes Feld kommt etcpp gibt es diese Klasse, die für dich jeweils eine Zeile liest und dir die CSV Felder zurück gibt.

Es ist das Prinzip von Python da lazy zu sein und deswegen gibt dir die zuweisung rows=.... nicht direkt alle rows, sondern nur ein Iterator, der wenn du auf seine Elemente zugreifen willst (z.B. per Schleife, per next(rows),...), dir dann erst durch das File spaziert.
17.11.2017 10:04:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
limlug

tf2_soldier.png
 
Zitat von Wraith of Seth

Nein, ihr versteht mich falsch.Breites Grinsen

Für mich ist eine CSV erstmal eine Tabelle, die man nutzt, weil man kein Office-Paket zur Verfügung hat, d.h. gehe irgendwie davon aus, dass es sinnvoll ist, mehrmals auf die Zeilen zurückzugreifen. Wenn ich jetzt schon mit der Anzahl der Zeilen (denn das macht ja letztlich der Iterator) Probleme im RAM habe, ... ...äh...??

Aber: Ich habe noch nie etwas geschrieben, was mehr als 100 Zeilen Code (oder so in der Größenordnung) hatte, von daher habe ich wahrscheinlich einfach keine Ahnung, und bin nur frustriert, dass es nicht für meinen Pippifax-Anwendungsfall optimiert ist.

Wovon man nicht sprechen kann, darüber muss man schweigen.



Der default Wert ist halt verbrauche so wenig Speicher wie möglich. Python weiß nicht wie groß die Datei ist und ob sie in den RAM passt. Wenn der Anwender weiß, dass die passt kann er ja list(reader) aufrufen. Der default Wert ist jedoch sehr sinnvoll da es viele Datensätze gibt die größer sind als dein RAM (nicht nur vom Cern) und du zugleich insbesondere bei Csv Daten oft nur mit einer Zeile gleichzeitig arbeitest.
17.11.2017 10:04:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Meh, Scheißwelt. Das hat alles für mich optimiert zu sein.Wütend

Immerhin läuft das Programm. Ich kann dynamisch die Abstract-Liste erstellen und die Programmtabelle. Nur die Slots sind hardgecoded, und die Reihenfolge durch die CSV vorgegeben. Könnte schlimmer sein. Auch wenn der Code wahrscheinlichen jeden echten Coder/Programmierer in Schockstarre fallen lässt.Breites Grinsen

...wie zu erwarten, ist der eigentliche Horror, die Namensschilder in LaTeX ans Laufen zu bekommen. Siehe LaTeX-Thread...

...kein Mensch kann sie wissen, kein Jäger erschießen.
17.11.2017 10:16:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
...
 
Zitat von Wraith of Seth

Meh, Scheißwelt. Das hat alles für mich optimiert zu sein.Wütend



Es ist bereits für dich optimiert. Es ist an dir zu verstehen, warum!
17.11.2017 11:12:38  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Xerxes-3.0

AUP Xerxes-3.0 07.09.2008
 
Zitat von Wraith of Seth

Wenn du LHC-Daten in eine csv packst,


Fun fact: die verwenden HDF5 (teilweise), genau wie die Leute vom XFEL, weil auch kleinere Anlagen mit hoher Repetitionsrate ruckzuck in den Wharrrgarbbl-Modus gehen.
17.11.2017 15:08:14  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Ich nutze HDF5/NetCDF inzwischen für jeden Scheiß.
Bombe ist das.
17.11.2017 15:17:38  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Wir haben ein eigenes Format geschrieben, was im Prinzip HDF5 repliziert (insbesondere geblockte und komprimierte Represäntation von Volumen), aber einfach das filesystem benutzt. Damit haben wir easy parallele writes.

17.11.2017 15:20:15  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Du meinst das hier? https://www.tiledb.io/

/e: Ich bin gerade dabei zu testen, wie meine STEM image Simulation skaliert. Bis 2048 Procs ist es bisher fast embarrassingly parallel, i.e., perfekter speedup. Belege auf dem Darmstädtischen Cluster momentan 128 komplette Knoten. \o/
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Oli am 17.11.2017 15:25]
17.11.2017 15:21:36  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Ne, in-house Java library (mittlerweile auch mit C++/Python reader).

17.11.2017 15:23:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
DeineOmi

deineomi
Ist HDF eine neumodische IMS DB ohne IMS TM?
17.11.2017 16:02:02  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
HDF ist einfach nur ein hierarchisches Binärdatenformat. Man kann Gruppen anlegen, und Gruppen können einfache Attribute und vieldimensionale Daten beherbergen. Dazu kann man beeinflussen, wie die Daten gechunked werden (also in welcher Reihenfolge sie abgelegt werden), es kann automatisch komprimiert werden und so weiter.

Ich nutze das, um eine einzelne Datei zu erstellen, in der ich strukturiert alle Ergebnisse meienr Rechnungen ablegen kann, inklusive lauter Meta Daten. Ist deutlich angenehmer und platzsparender als ein Verzeichnis mit zig Dateien zu haben.

/e: MATLABs .mat Format ist auch HDF5.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Oli am 17.11.2017 16:13]
17.11.2017 16:13:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: pOT-lnformatik, Mathematik, Physik XXI ( X-Ray-Edition )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 nächste »

mods.de - Forum » Public Offtopic » 

Hop to:  

Mod-Aktionen:
18.06.2018 07:25:48 Sharku hat diesen Thread geschlossen.
04.05.2017 21:55:58 Sharku hat diesem Thread das ModTag 'pimp' angehängt.

| tech | impressum