Mittelwert, Standardabweichung und z- Transformation berechen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

Hey, ich muss für mein Studium von einer vorgegebenen Liste den Mittelwert, die Standardabweichung und die Z-Transformation berechen. Ich habe es schon mehrfach ausprobiert leider kriege ich kein Ergebnis raus, deswegen wollte ich fragen ob jemand weiß wie man dies berechnet bzw. die Funktion weiß die man braucht.

Mein versuch:
groesse = (
68.78190404589029,
74.11010539178491,
71.7309784033377,
69.8817958611153,
67.2530156878065,
68.78508125166161,
68.34851551158789,
67.01894966288299,
63.456493978366396,
71.1953822829745,
71.64080511922059,
64.7663291334055,
69.2830700967204,
69.2437322298112,
67.6456197004212,
72.4183166259878,
)

def mittelwert (groesse):
summe=0
l = len(groesse)
for wert in groesse:
print(summe,wert)
summe= summe + wert
mw= summe/1
return mw
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Du solltest noch näher beschreiben, wo Du genau Probleme bekommst, sonst kann man ja schlecht helfen. Beim Programmieren sollte man Abkürzungen (mw) vermeiden, weil man sie schlecht verstehen kann. Einbuchstabige Variablen vor allem solche die man leicht mit anderen Zeichen verwechseln kann (l, 1, I) solltest Du gar nicht benutzen.
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

Wir haben das so in der Vorlesung beigebracht bekommen, ich bin ein kompletter Anfänger und kennne mich jetzt nicht wirklich mit diesem Programm aus. Mein Problem ist, dass diese von mir oben angegebene Funktion leider nicht funktioniert es spukt kein Ergebnis aus. Auch wird kein error angezeigt, lediglich eine neue Spalte wird angefangen. Deswegen wollte ich fragen ob jemand weiß wie man die oben genannten Sachen ausrechnet bzw. Eine Funktion kennt.
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

Sirius3 hat geschrieben: Montag 19. November 2018, 22:18 Du solltest noch näher beschreiben, wo Du genau Probleme bekommst, sonst kann man ja schlecht helfen. Beim Programmieren sollte man Abkürzungen (mw) vermeiden, weil man sie schlecht verstehen kann. Einbuchstabige Variablen vor allem solche die man leicht mit anderen Zeichen verwechseln kann (l, 1, I) solltest Du gar nicht benutzen.
Wir haben das so in der Vorlesung beigebracht bekommen, ich bin ein kompletter Anfänger und kennne mich jetzt nicht wirklich mit diesem Programm aus. Mein Problem ist, dass diese von mir oben angegebene Funktion leider nicht funktioniert es spukt kein Ergebnis aus. Auch wird kein error angezeigt, lediglich eine neue Spalte wird angefangen. Deswegen wollte ich fragen ob jemand weiß wie man die oben genannten Sachen ausrechnet bzw. Eine Funktion kennt.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Wo wird eine neue Spalte angefangen? Wie benutzt Du denn die Funktion? Was machst Du genau?
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Aileens: Das scheint ja eine Uni-Vorlesung zu sein und wenn Du da kein Python beigebracht bekommst, dann gehen die Dozenten in der Regel davon aus, das Du Dir das selbstständig erarbeitest, also Dich hinsetzt und selbst Python lernst. Mindestens bis zu einem Level um das Programm lesen und verstehen zu können und selbst Programme zu schreiben um die gestellten Aufgaben zu lösen. Das was Du an Code zeigst ist auch noch problemlos für Anfänger mit den Grundlagen leistbar. Ein Grundlagentutorial zu Python findest Du beispielsweise direkt in der Python-Dokumentation.

In Python 3 gibt es in der Standardbibliothek übrigens auch ein `statistics`-Modul das Dir vielleicht etwas Arbeit abnehmen kann. Sofern die eigentlich Aufgabe nicht ist tatsächlich die Rechnungen komplett selbst zu programmieren, statt sich in einem fertigen Modul zumindest an Bausteinen zu bedienen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

Sirius3 hat geschrieben: Dienstag 20. November 2018, 14:24 Wo wird eine neue Spalte angefangen? Wie benutzt Du denn die Funktion? Was machst Du genau?
Wenn ich die Aktion ausführe und genau wie es oben steht.
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

__blackjack__ hat geschrieben: Dienstag 20. November 2018, 15:24 @Aileens: Das scheint ja eine Uni-Vorlesung zu sein und wenn Du da kein Python beigebracht bekommst, dann gehen die Dozenten in der Regel davon aus, das Du Dir das selbstständig erarbeitest, also Dich hinsetzt und selbst Python lernst. Mindestens bis zu einem Level um das Programm lesen und verstehen zu können und selbst Programme zu schreiben um die gestellten Aufgaben zu lösen. Das was Du an Code zeigst ist auch noch problemlos für Anfänger mit den Grundlagen leistbar. Ein Grundlagentutorial zu Python findest Du beispielsweise direkt in der Python-Dokumentation.

In Python 3 gibt es in der Standardbibliothek übrigens auch ein `statistics`-Modul das Dir vielleicht etwas Arbeit abnehmen kann. Sofern die eigentlich Aufgabe nicht ist tatsächlich die Rechnungen komplett selbst zu programmieren, statt sich in einem fertigen Modul zumindest an Bausteinen zu bedienen.

Hey, leider bringt mir diese Antwort nichts aber ich Danke trotzdem
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Aileens hat geschrieben: Mittwoch 21. November 2018, 17:21
Sirius3 hat geschrieben: Dienstag 20. November 2018, 14:24 Wo wird eine neue Spalte angefangen? Wie benutzt Du denn die Funktion? Was machst Du genau?
Wenn ich die Aktion ausführe und genau wie es oben steht.
Ich sehe da ueberhaupt keine Spalte. Das du zwei Spalten mit print ausgibst ist dir klar? Das dein Rueckgabewert mw falsch ist, liegt daran, dass du nicht durch das richtige teilst. Worauf sich auch der Hinweis von Sirius3 bezog.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Aileens: Wenn Du welche Aktion ausführst? Was ist hier die „Aktion“? Und natürlich passiert nichts weiter bei dem anfangs gezeigten Code, denn da steht nichts weiter als das zwei Werte definiert werden: `groesse` und `mittelwert`, also ein Tupel mit Werten und eine Funktion. Die ruft sich nicht auf magische Weise selbst auf und rät dabei was sie wohl als Argument verwenden soll. Das wüsste man, wenn man die Python-Grundlagen beherrscht.

Wieso hilft Dir der Hinweis darauf, dass man Python lernen muss um in Python zu programmieren nicht weiter? Das wusstest Du schon, aber Du willst Python nicht lernen? Dann willst Du hier eine Lösung für *Deine* Aufgaben haben? Warum sollte hier jemand so einen Betrugsversuch unterstützen wollen?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

__blackjack__ hat geschrieben: Mittwoch 21. November 2018, 17:54 @Aileens: Wenn Du welche Aktion ausführst? Was ist hier die „Aktion“? Und natürlich passiert nichts weiter bei dem anfangs gezeigten Code, denn da steht nichts weiter als das zwei Werte definiert werden: `groesse` und `mittelwert`, also ein Tupel mit Werten und eine Funktion. Die ruft sich nicht auf magische Weise selbst auf und rät dabei was sie wohl als Argument verwenden soll. Das wüsste man, wenn man die Python-Grundlagen beherrscht.

Wieso hilft Dir der Hinweis darauf, dass man Python lernen muss um in Python zu programmieren nicht weiter? Das wusstest Du schon, aber Du willst Python nicht lernen? Dann willst Du hier eine Lösung für *Deine* Aufgaben haben? Warum sollte hier jemand so einen Betrugsversuch unterstützen wollen?
Das ist kein Betrugsversuch um das vorab erstmals klar zustellen. Das ich die Grundlagen kennen muss ist mir klar, ich wollte lediglich wissen was genau ich oben falsch gemacht habe, da ich selber den Fehler nicht finde. Danke für die Antwort, auch wenn von Nettigkeit nicht wirklich die Rede sein kann. Bitte ignoriere doch einfach meine Frage, falls es dir in irgendeiner Art und Weise zu Nahe geht oder dich eventuell sogar in eine moralisches Dilemma versetzt. Schließlich ist dieses Portal zum austauschen gedacht und nicht um jemanden runter zumachen, denke da kann man seinen Abend echt produktiver verbringen. Vielen Dank und einen schönen Abend Ihnen.
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

__deets__ hat geschrieben: Mittwoch 21. November 2018, 17:48
Aileens hat geschrieben: Mittwoch 21. November 2018, 17:21
Sirius3 hat geschrieben: Dienstag 20. November 2018, 14:24 Wo wird eine neue Spalte angefangen? Wie benutzt Du denn die Funktion? Was machst Du genau?
Wenn ich die Aktion ausführe und genau wie es oben steht.
Ich sehe da ueberhaupt keine Spalte. Das du zwei Spalten mit print ausgibst ist dir klar? Das dein Rueckgabewert mw falsch ist, liegt daran, dass du nicht durch das richtige teilst. Worauf sich auch der Hinweis von Sirius3 bezog.
Nein das meine ich nicht, ich meine wenn ich die Aktion ausführe in Python ergo shift + enter drücke passiert nichts. Danke, dann probiere ich das gleich aus und gebe dann Bescheid.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Hallo Aileens,
wenn du eine Funktion definierst, musst du diese auch aufrufen und den Rückgabewert weiterverwenden z.B. ausgeben

Code: Alles auswählen

groesse = (68.78190404589029, 74.11010539178491, 71.7309784033377, 69.8817958611153, 67.2530156878065,
           68.78508125166161, 68.34851551158789, 67.01894966288299, 63.456493978366396, 71.1953822829745,
           71.64080511922059, 64.7663291334055, 69.2830700967204, 69.2437322298112, 67.6456197004212, 72.4183166259878)

def mittelwert(liste_von_werten):
    summe = 0
    for wert in liste_von_werten:
        summe = summe + wert
    return summe / len(liste_von_werten)

mean = mittelwert(groesse)
print(mean)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Aileens
User
Beiträge: 8
Registriert: Montag 19. November 2018, 21:27

ThomasL hat geschrieben: Donnerstag 22. November 2018, 22:39 Hallo Aileens,
wenn du eine Funktion definierst, musst du diese auch aufrufen und den Rückgabewert weiterverwenden z.B. ausgeben

Code: Alles auswählen

groesse = (68.78190404589029, 74.11010539178491, 71.7309784033377, 69.8817958611153, 67.2530156878065,
           68.78508125166161, 68.34851551158789, 67.01894966288299, 63.456493978366396, 71.1953822829745,
           71.64080511922059, 64.7663291334055, 69.2830700967204, 69.2437322298112, 67.6456197004212, 72.4183166259878)

def mittelwert(liste_von_werten):
    summe = 0
    for wert in liste_von_werten:
        summe = summe + wert
    return summe / len(liste_von_werten)

mean = mittelwert(groesse)
print(mean)
Hallo ThomasL, vielen lieben dank: Es hat geklappt! Dann weiß ich jetzt wie ich es zukünftig zu bewältigen habe.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@ThomasL: wenn Du hier schon Code reparierst, warum dann nicht gleich komplett?

Code: Alles auswählen

def mittelwert(liste_von_werten):
    return sum(liste_von_werten) / len(liste_von_werten)
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

@Sirius3 um dir eine Möglichkeit zu bieten, hier unnötig reinzugrätschen.
Stört dich das der OP sich jetzt für meine Hilfe bedankt?
Der Code war doch bis auf einen Typo und dem Verständnisproblem ok.
Hätte man sofort in der ersten Antwort erledigen können, stattdessen wird hier rumgeeiert.
Nicht meine Art.
Bitte unterlass in Zukunft Kommentare dieser Art in meine Richtung. Danke.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten