Statistiske Operationer
At udføre forskellige statistiske operationer på arrays er essentielt for dataanalyse og maskinlæring. NumPy tilbyder funktioner og metoder til at udføre dem effektivt.
Mål for Central Tendens
Mål for central tendens repræsenterer en central eller repræsentativ værdi inden for en sandsynlighedsfordeling. Oftest vil du dog beregne disse mål for en bestemt prøve.
Her er de to hovedmål:
Mean: summen af alle værdier divideret med det totale antal værdier;
Median: Den midterste værdi i en sorteret prøve.
NumPy tilbyder mean()
og median()
funktioner til at beregne henholdsvis gennemsnittet og medianen:
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 sorterede eksempel, så du tydeligt kan se medianen. Vores eksempel har et ulige antal elementer (7), så medianen er simpelthen elementet på indeks (n + 1) / 2
i det sorterede eksempel, hvor n
er størrelsen af eksemplet.
Bemærk
Når eksemplet har et lige antal elementer, er medianen gennemsnittet af elementerne på indeks
n / 2
ogn / 2 - 1
i det sorterede eksempel.
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}')
Vores eksempel er allerede sorteret og har 8 elementer, så n / 2 - 1 = 3
og sample[3]
er 10. n / 2 = 4
og sample[4]
er 15. Derfor er vores median (10 + 15) / 2 = 12.5
.
Spredningsmål
To mål for spredning er varians og standardafvigelse. Varians måler, hvor spredt dataene er. Det er lig med gennemsnittet af de kvadrerede forskelle af hver værdi fra gennemsnittet.
Standardafvigelse er kvadratroden af variansen. Det giver et mål for, hvor spredt dataene er i de samme enheder som dataene.
NumPy har funktionen var()
til at beregne variansen af prøven og funktionen std()
til at beregne standardafvigelsen af prøven:
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øjere dimensionelle arrays
Alle disse funktioner har en anden parameter axis
. Dens standard værdi er None
, hvilket betyder, at målingen vil blive beregnet langs et fladt array (selv hvis det oprindelige array er 2D eller højere dimensionelt).
Du kan også specificere den præcise akse, langs hvilken målingen 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))
Billedet nedenfor viser strukturen af exam_scores
arrayet, der bruges i opgaven:
Swipe to start coding
Du analyserer exam_scores
arrayet, et 2D-array af simulerede testresultater for 2 studerende (2 rækker) på tværs af 5 forskellige eksamener (5 kolonner).
-
Beregn gennemsnitsscoren for hver studerende ved at specificere det andet nøgleordargument.
-
Beregn medianen af alle scores.
-
Beregn variansen af alle scores.
-
Beregn standardafvigelsen af alle scores.
Løsning
Tak for dine kommentarer!