Spezielle for Schleife programmieren für Übergangswahrscheinlichkeiten

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.
Antworten
Wunderkind89
User
Beiträge: 66
Registriert: Sonntag 15. November 2020, 01:28

Hey zusammen, kann mir jemand bei einer for schleife helfen?

Mein Ziel ist es die Werte in einer Liste untereinander zu vergleichen. Beispiel: a = [1,0,1,3,5,3,0,1,3]

Ich suche meine Liste nach Folgenden Kriterien durch: Zuerst wird die Liste nach 0,0 0,1 0,2 0,3 0,4 0,5 durchsucht, wie man sieht kommt 0,1 zwei mal vor und ich hab 9 Elemente insgesamt, also eine Übergangswahrscheinlichkeit 2/(9 -1) für 0,1 weil ich zähle ja die Übergänge und die sind n - 1 kleiner als n, die Länge der Liste. Dann schaue ich 1,0 1,1 1,2 1,3 1,4 1,5 an usw. Das ganze soll solange gehen bis ich den höchsten Wert erreiche und hier wäre es die 5, also steht am Ende 5,0 5,1 5,2 5,3 5,4 5,5 und es wird jeweils geschaut wie oft die Werte im Einzelnen vorkommen also wie oft 5,0 wie oft 5,1 usw. Wichtig: jeder Eintrag soll eine Eigene Wahrscheinlichkeit haben also 0,1 hat die Wahrscheinlichkeit 2/8 und 0,0 hat eine Wahrscheinlichekit xy usw.

Ich hab zuerst den Max und Min Werte Ermittelt, durch

Code: Alles auswählen

max_value = np.amax(diff_data[label])
min_value = np.amin(diff_data[label])

for i in range(min_value, max_value + 1):
	print(i)
wie könnte ich weiter vorgehen. Hat jemand eine Idee?
Wunderkind89
User
Beiträge: 66
Registriert: Sonntag 15. November 2020, 01:28

Update:

Code: Alles auswählen


max_value = np.amax(diff_data[label])
min_value = np.amin(diff_data[label])

frequency_diff_data_label = []
    
for i in range(min_value, max_value + 1):
        for b in range(min_value, max_value + 1):
            if (diff_data[label] == [i],[b]):
                counter = counter + 1
                frequency_diff_data_label.append(counter)
Fehler:

Code: Alles auswählen


Traceback (most recent call last):
File "C:\Users\iljar\Desktop\UebungenPython\transition_propability_learn_Data.py", line 100, in <module>
main()
File "C:\Users\iljar\Desktop\UebungenPython\transition_propability_learn_Data.py", line 81, in main
counter = counter + 1
UnboundLocalError: local variable 'counter' referenced before assignment

Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Wunderkind89: Welchen Wert hat denn `counter`? Wenn man da 1 drauf addieren will, muss man doch irgendwann mal festgelegt haben auf welchen Wert 1 addiert werden soll.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten