Seite 1 von 1
iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 09:29
von MathGenie123
meine frage wäre was genau dieser code macht bzw. wie wird hier iteriert ?
Code: Alles auswählen
attributes_by_class = [[data[:,i][data[:,0] == c]
for c in (1,2,3)]
for i in range(1,14)]
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 09:39
von __deets__
Das ist eine List-Comprehension, zwei ineinander verschachtelte um genauer zu sein.
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 09:41
von MathGenie123
wie wird denn dort iteriert ?
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 09:56
von bords0
Um das zu verstehen, hilft dir vielleicht, die list comprehensions (eine oder beide) auflösen. Ich löse mal die äußere auf:
Code: Alles auswählen
attributes_by_class = []
for i in range(1, 14):
attributes_by_class.append(
[data[:, i][data[:, 0] == c] for c in (1, 2, 3)]
)
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 10:13
von MathGenie123
wie kommt man darauf dass die iteration von 1-14 als die äußere schleife gilt ? müsste sie nicht die innere schleife sein ?
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 10:20
von Sirius3
Vielleicht helfen auch einfach sinnvolle Zeilenumbrüche:
Code: Alles auswählen
attributes_by_class = [
[
data[data[:,0] == c, i]
for c in (1,2,3)
]
for i in range(1,14)
]
Wenn man über Indices eines numpy-Arrays macht man meist was falsch.
So ist das Format etwas anders, sollte aber eh besser sein:
Code: Alles auswählen
attributes_by_class = [
data[data[:, 0] == c, 1:]
for c in (1,2,3)
]
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 10:28
von bords0
MathGenie123 hat geschrieben: Freitag 17. Juni 2022, 10:13
wie kommt man darauf dass die iteration von 1-14 als die äußere schleife gilt ? müsste sie nicht die innere schleife sein ?
Weil es die äußere der beiden list comprehensions ist.
Nicht verwechseln mit
einer list comprehension mit
zwei for-Schleifen drin, das ist etwas anderers.
Oder vielleicht musst du einfach nochmal nachlesen, wie list comprehension funktionieren.
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 10:39
von __deets__
Da kommt man drauf, wenn man sich mal die Dokumentation zu dem Sprachfeature durchliest. Hast du das mal gemacht?
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 11:05
von MathGenie123
nein, ich bin java programmer und bin neu umgestiegen
Re: iterationschritte einer liste
Verfasst: Freitag 17. Juni 2022, 11:08
von __deets__
Ja und, mit dem Hinweis "das ist folgendes Feature" kann's doch losgehen?