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: 17712
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: 17712
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: 13005
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()
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten