Statistiske Operasjoner
Utføre ulike statistiske operasjoner på matriser er essensielt for dataanalyse og maskinlæring. NumPy gir funksjoner og metoder for å utføre dem effektivt.
Mål for sentraltendens
Mål for sentraltendens representerer en sentral eller representativ verdi innenfor en sannsynlighetsfordeling. For det meste vil du imidlertid beregne disse målene for et bestemt utvalg.
Her er de to hovedmålene:
Gjennomsnitt: summen av alle verdier delt på det totale antallet verdier;
Median: Den midterste verdien i et sortert utvalg.
NumPy gir mean()
og median()
funksjoner for å beregne henholdsvis gjennomsnitt og median:
import numpy as np sample = np.array([10, 25, 15, 30, 20, 10, 2]) # Calculating the mean sample_mean = np.mean(sample) print(f'Sorted sample: {np.sort(sample)}') # Calculating the median sample_median = np.median(sample) print(f'Mean: {sample_mean}, median: {sample_median}')
Vi viste også det sorterte utvalget slik at du tydelig kan se medianen. Vårt utvalg har et oddetall antall elementer (7), så medianen er ganske enkelt elementet på indeks (n + 1) / 2
i det sorterte utvalget, hvor n
er størrelsen på utvalget.
Merk
Når utvalget har et partall antall elementer, er medianen gjennomsnittet av elementene på indeks
n / 2
ogn / 2 - 1
i det sorterte utvalget.
import numpy as np sample = np.array([1, 2, 8, 10, 15, 20, 25, 30]) sample_median = np.median(sample) print(f'Median: {sample_median}')
Vårt utvalg er allerede sortert og har 8 elementer, så n / 2 - 1 = 3
og sample[3]
er 10. n / 2 = 4
og sample[4]
er 15. Derfor er vår median (10 + 15) / 2 = 12.5
.
Spredningsmål
To mål for spredning er varians og standardavvik. Varians måler hvor spredt dataene er. Det er lik gjennomsnittet av de kvadrerte forskjellene mellom hver verdi og gjennomsnittet.
Standardavvik er kvadratroten av variansen. Det gir et mål på hvor spredt dataene er i de samme enhetene som dataene.
NumPy har funksjonen var()
for å beregne variansen av utvalget og funksjonen std()
for å beregne standardavviket av utvalget:
import numpy as np sample = np.array([10, 25, 15, 30, 20, 10, 2]) # Calculating the variance sample_variance = np.var(sample) # Calculating the standard deviation sample_std = np.std(sample) print(f'Variance: {sample_variance}, standard deviation: {sample_std}')
Beregninger i høyere dimensjonale matriser
Alle disse funksjonene har en andre parameter axis
. Dens standardverdi er None
, som betyr at målet vil bli beregnet langs en flatet matrise (selv om den opprinnelige matrisen er 2D eller høyere dimensjonal).
Du kan også spesifisere den eksakte aksen langs hvilken målet skal beregnes:
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) # Calculating the mean in a flattened array print(np.mean(array_2d)) # Calculating the mean along axis 0 print(np.mean(array_2d, axis=0)) # Calculating the mean along axis 1 print(np.mean(array_2d, axis=1))
Bildet nedenfor viser strukturen til exam_scores
-arrayet som brukes i oppgaven:
Swipe to start coding
Du analyserer exam_scores
-arrayet, en 2D-array av simulerte testresultater for 2 studenter (2 rader) på tvers av 5 forskjellige eksamener (5 kolonner).
-
Beregn gjennomsnittlig poengsum for hver student ved å spesifisere det andre nøkkelordargumentet.
-
Beregn medianen av alle poengsummer.
-
Beregn variansen av alle poengsummer.
-
Beregn standardavviket av alle poengsummer.
Løsning
Takk for tilbakemeldingene dine!