10x10 Matrix mit Wertepaaren

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
mikelson
User
Beiträge: 2
Registriert: Mittwoch 30. Dezember 2020, 18:50

Sehr geehrte Damen und Herren,

Ich bin Anfänger in Python. Ich habe mal versucht in den letzten 2 Stunden das Problem selbst zu lösen, aber schaffe es nicht.
Ich versuche eine 3x3 Matrix zu erstellen, an den jeweiligen Matrixknotenpunkten soll dann kein Einzelwert sondern ein Wertepaar (mit Komma oder anderweitig separiert) stehen:

0,0 0,0 0,0
0,0 0,0 0,0
0,0 0,0 0,0

1) Wie kann ich ein solches Array mit einer Schleife darstellen ?
2) wie kann ich danach Einzelpaare ändern ?

0,0 1,1 0,0
0,0 0,0 0,0
3,3 0,0 0,0

3) wie kann ich auf ein bestimmtes Wertepaar zugreifen ? (z.B. auf die 3,3 in Zeile 3) ?
4) Wie kann ich auf einen Einzelwert zugreifen z.B auf die erste 3 ?

Mit freundlichen Grüßen
mikelson
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

Es gibt mindestens zwei gängige Wege, das (ohne externe Bibliotheken) mit eingebauten Datenstrukturen zu erreichen: Entweder mit einer Liste von Listen von Listen/Tupels(für die Wertpaare). Oder mit einem Dictionary, bei dem die Keys ein Tupel für die Zeile/Spalten sind und die Values deine Wertpaare. Was du am besten verwendest, hängt vom Anwendungsfall ab.

Code: Alles auswählen

In [1]: from pprint import pprint

In [2]: p = [[[i, j] for j in range(3)] for i in range(3)]

In [3]: q = {(i, j): (i, j) for i in range(3) for j in range(3)}

In [4]: pprint(p)
[[[0, 0], [0, 1], [0, 2]],
 [[1, 0], [1, 1], [1, 2]],
 [[2, 0], [2, 1], [2, 2]]]

In [5]: pprint(q)
{(0, 0): (0, 0),
 (0, 1): (0, 1),
 (0, 2): (0, 2),
 (1, 0): (1, 0),
 (1, 1): (1, 1),
 (1, 2): (1, 2),
 (2, 0): (2, 0),
 (2, 1): (2, 1),
 (2, 2): (2, 2)}

In [6]: p[1][2]
Out[6]: [1, 2]

In [7]: q[1,2]
Out[7]: (1, 2)
mikelson
User
Beiträge: 2
Registriert: Mittwoch 30. Dezember 2020, 18:50

Prima ! Ganz herzlichen Dank. Es ist genau das, was ich gesucht hatte.
Antworten