Standardabweichung bei np.random.randn Matrix

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Beginner2019
User
Beiträge: 17
Registriert: Mittwoch 29. April 2020, 12:27

Weiß jemand wie man bei einer np.random.randn Matrix die Standardabweichung festlegt?
Ist es richtig die Standardabweichung einfach als Multiplikator vorne anzustellen?

Viele Grüße und danke im vorraus
Sirius3
User
Beiträge: 18375
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du eine andere Normalverteilung willst, warum nimmst Du dann nicht `numpy.random.normal`?
Beginner2019
User
Beiträge: 17
Registriert: Mittwoch 29. April 2020, 12:27

Randn zu benutzen ist in der Aufgabenstellung festgelegt
Sirius3
User
Beiträge: 18375
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn es darum geht, eine Verteilung nachzuprogrammieren, warum dann nicht auf noch weniger beschränken?
Benutzeravatar
__blackjack__
User
Beiträge: 14336
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Beginner2019: `randn()` ist eine Funktion für Matlab-Portierungen, die eigentliche Funktion dahinter ist `standard_normal()`. Und *die* sollte man in neuem Code nicht mehr direkt aufrufen, sondern erst ein `Generator`-Objekt erstellen. Den Aufgabensteller sollte man vielleicht mal mit der Nase auf die Dokumentation stupsen.

Code: Alles auswählen

#!/usr/bin/env python3
import numpy as np

SIZE = 1_000_000


def main():
    rng = np.random.default_rng()
    wanted_deviation = 0.42
    for _ in range(20):
        data = wanted_deviation * rng.standard_normal(SIZE)
        actual_deviation = np.std(data)
        print(
            "std: {:.10f}  diff: {:.10f}".format(
                actual_deviation, abs(wanted_deviation - actual_deviation)
            )
        )


if __name__ == "__main__":
    main()
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
Antworten