Ich versuche einen Zustandsvektor zu erstellen, der die Positionen und Geschwindigkeiten einer Reihe von Partikeln darstellt zu einer bestimmten Zeit für eine Simulation. Ich habe individuelle Vektoren x, y, vx, vy erstellt, die den Wert dieser Variablen für jedes Partikel angeben. Gibt es eine gute Möglichkeit, sie automatisch zu einem Array zu kombinieren, das alle Informationen für Partikel eins enthält, gefolgt von allen Informationen für Partikel zwei usw.? DankePython-Array aus dem ersten Element von Array 1, dem ersten Element von Array 2, dem zweiten Element von Array 1, dem zweiten Element von Array 2 usw. erstellen
0
A
Antwort
1
Meinst du das?
x = [0, 1, 2]
y = [3, 4, 5]
vx = [6, 7, 8]
vy = [9, 10, 11]
c = zip(x, y, vx, vy)
print(c) # -> [(0, 3, 6, 9), (1, 4, 7, 10), (2, 5, 8, 11)]
wenn Sie mit Python 3, müssen Sie c = list(zip(x, y, vx, vy))
verwenden.
Wenn Sie nicht die Werte für jeden in ein Tupel gruppiert Teilchen wollen wie das aus irgendeinem Grund, könnte das Ergebnis abgeflacht werden:
c = [item for group in zip(x, y, vx, vy) for item in group]
print(c) # -> [0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11]
jedoch, würde ich empfehlen, nur „Benennung“ der stattdessen Tupel:
from collections import namedtuple
Particle = namedtuple('Particle', 'x, y, vx, vy')
c = [Particle._make(group) for group in zip(x, y, vx, vy)]
print(c)
Ausgang:
[Particle(x=0, y=3, vx=6, vy=9),
Particle(x=1, y=4, vx=7, vy=10),
Particle(x=2, y=5, vx=8, vy=11)]
Auf diese Weise können Sie die Felder nach Namen referenzieren - d. H. c[1].x
- was den nachfolgenden Code und die Berechnungen viel lesbarer machen könnte.
Verwandte Themen
- 1. Entfernen Element aus dem Array
- 2. aus dem ersten Liste erstes Element, indem sie, und letztes Element aus dem zweiten Liste
- 3. Element aus dem Array, ohne reindexing
- 4. ruby Ein Element aus dem Array entfernen
- 5. php entfernen ein Element aus dem Array
- 6. Entfernen Array-Element aus dem lokalen Speicher
- 7. entfernen Sie ein Array aus einem Array mit dem ersten Element der inneren Arrays mit jquery
- 8. Zugang zu dem Element in Array
- 9. C# ab dem zweiten Element in var
- 10. Array muss enthält 1 Element
- 11. alles aus dem zweiten Array löschen, die in der ersten Array JQuery existiert
- 12. jedes zweite Element aus dem Array auswählen lambda Verwendung
- 13. Element aus Array entfernen
- 14. Löschen von Element aus Array in Javascript
- 15. RecyclerView zeigt alles außer dem ersten Element
- 16. C++ 11: Range-Loop-Vektor aus dem zweiten Element?
- 17. android - Wie man ein Element aus dem Array ImageButton entfernt?
- 18. Nach dem Zufallsprinzip Element in Array auswählen und dann aus dem Array entfernen
- 19. Ruby Match-Elemente von der ersten mit zweiten Array
- 20. Entfernen Sie ein leeres Element aus dem Array
- 21. Abrufen von Code aus dem Array von Array
- 22. So entfernen Sie ein Element aus dem JSON-Array
- 23. ein Element aus dem Array erhalten mit http-GET-php
- 24. Set-Element innerhalb Array-Array
- 25. Array Element für Element entfernen Zeiger (Alias)
- 26. Get zufälliges Element aus dem Array in MongoDB
- 27. Wie kann ein Array-Element aus einem Vergleich mit einem anderen Array-Element entfernt werden?
- 28. PHP | Element bei Neuordnung aus dem Array entfernen?
- 29. Element basierend auf seinem Wert aus dem Array entfernen?
- 30. TWIG Wie bekomme ich das erste Element aus dem Array
Ja, das ist, was ich bekommen habe. Vielen Dank. Wird die Tatsache, dass die neue Liste gruppiert ist (wie die Klammern angeben), Auswirkungen auf zukünftige Berechnungen haben? –
Dies erzeugt eine Liste von Tupeln, so dass die Information für das erste Teilchen in 'c [0]' ist, wobei 'c [0] [0]' der 'x' Wert des ersten Teilchens ist, c [0] [ 1] 'ist sein' y'Wert usw. Die Information für das zweite Teilchen ist in 'c [1]'. Dies wirkt sich nicht auf zukünftige Berechnungen aus, solange Sie auf die Werte korrekt zugreifen. Wenn das zu mühsam ist, könnte es verbessert werden, um verschiedene Unterobjekte zu erzeugen. Beantwortet meine Antwort Ihr Problem? (Bitte lesen Sie [_Was soll ich tun, wenn jemand meine Frage beantwortet?] (Http://stackoverflow.com/help/someone-answers)) – martineau
Ich denke, es tut. Gibt es eine Möglichkeit, dasselbe zu tun, ohne dass es eine Liste von Tupeln ist? d.h. nur die einzelnen Zahlen in der Anordnung –