Vergleich eines Wertes aus Array mit einem Anderen

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
nadine_83
User
Beiträge: 12
Registriert: Donnerstag 10. Oktober 2013, 15:27

Mein Problem ist folgendes: Ich habe zwei Arrays (exp und obs). exp hat einen Eintrag für einen bestimmten Wert "d_0" und das andere (exp) hat mehrere Werte für verschiedene "d_n". Jetzt möchte ich diese miteinander vergleichen (chi-squares). Dabei soll aber nur für ein bestimmtes "d_n" das chi-squares berechnet werden. Ich habe bisher folgendes:

Code: Alles auswählen

def chisq1(exp,obs):
expected = exp
observed = obs[d_n]
for d_n in range(len(obs)):
chisq = np.sum((observed - expected)**2)
chi = chisq1
return chi
print chisq1
Könnt ihr mir weiterhelfen?
BlackJack

@nadine_83: Das ist syntaktisch falsch, da fehlen Einrückungen. Ausserdem würde selbst mit Einrückungen als nächstes ein `NameError` kommen weil `d_n` nicht definiert ist bevor es verwendet wird. Das Muster ``for i in range(len(sequence)):`` ist in Python ein „anti pattern” — man kann *direkt* über die Elemente iterieren.

Vielleicht solltest Du von Deinem Vorhaben erst einmal einen Schritt zurück treten und ein Python-Tutorial durcharbeiten. Zum Beispiel das in der Python-Dokumentation oder für Programmieranfänger auch gerne empfohlen: Learn Python The Hard Way. Nicht vom Titel irritieren lassen. Danach solltest Du ein Numpy-Tutorial durcharbeiten, da ist in der Numpy-Dokumentation ein Startpunkt. Damit Du überhaupt erst einmal die Grundlagen der Sprache und der Werkzeuge die Du da verwendest, kennen lernst. Ohne hat das nicht so viel Sinn, denn das ist zu komplex als dass man die richtige Verwendung irgendwie durch herumprobieren hinreichend erraten kann.

Wenn man Zuweisungen nur macht um Werten mit kryptischen Namen bessere Namen zu geben, sollte man vielleicht *gleich* verständliche Namen verwenden und keine Abkürzungen die nicht allgemein bekannt sind.
Antworten