Menu
CoddyTech

Liczby losowe

Część sekcji Dane i wykresy ścieżki Machine Learning w Coddy. Lekcja 18 z 60.

Symulacje, potasowane dane i niewytrenowane modele — wszystko zaczyna się od liczb losowych. Te 1000 zmyślonych wzrostów powstało w jednej linijce:

Histogram 1000 losowych wzrostów w kształcie dzwonu, najwyższy w okolicy średniej wynoszącej 170 cm i opadający w kierunku 140 i 200

NumPy losuje je za pomocą generatora uruchomionego z ziarnem:

rng = np.random.default_rng(42)
heights = rng.normal(170, 10, size=1000)
print(np.round(heights[:4], 1))
print(rng.integers(1, 7, size=5))
print(np.round(rng.random(3), 2))

To wyświetla:

[173.  159.6 177.5 179.4]
[2 4 3 3 5]
[0.44 0.13 0.09]

normal(mean, std, size) skupia wartości wokół swojej średniej. integers pomija wartość końcową, podobnie jak range. random zwraca liczby dziesiętne od 0 do 1.

To samo ziarno daje te same liczby na każdym komputerze, więc każdy może powtórzyć twój eksperyment. Każde losowanie przesuwa generator dalej.

challenge icon

Wyzwanie

Łatwy

Sklep symuluje tydzień, który powtórzenie musi odtworzyć.

  1. Utwórz rng_a z ziarna i wylosuj 7 liczebności klientów z zakresu od 20 do 60 włącznie, a następnie 7 wartości wydatków z rozkładu normalnego: średnia 15, odchylenie standardowe 4.
  2. Wylosuj liczebności ponownie z rng_b dla tego samego ziarna oraz z rng_c dla ziarna powiększonego o 1.
  3. Wypisz wyniki jak poniżej: wydatki zaokrąglone do 1 miejsca po przecinku oraz liczbę dni, w których wyniki b i c są zgodne z a.

Dla ziarna 12:

Customers: [45 30 59 58 22 27 28]
Spend: [21.5 10.2 12.5  9.7 14.6 19.  14.9]
Same seed, days that match: 7
Seed + 1, days that match: 1

Spróbuj swoich sił

import numpy as np

seed = int(input())

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Dane i wykresy

Poćwicz samodzielnie: Kompilator Python online