Statistiska Operationer
Att utföra olika statistiska operationer på arrayer är viktigt för dataanalys och maskininlärning. NumPy tillhandahåller funktioner och metoder för att utföra dem effektivt.
Mått på central tendens
Mått på central tendens representerar ett centralt eller representativt värde inom en sannolikhetsfördelning. Oftast kommer du dock att beräkna dessa mått för ett visst urval.
Här är de två huvudsakliga måtten:
Medelvärde: summan av alla värden dividerat med det totala antalet värden;
Median: Det mittersta värdet i ett sorterat urval.
NumPy tillhandahåller mean()
och median()
funktioner för att beräkna medelvärdet respektive 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 visade också det sorterade urvalet så att du tydligt kan se medianen. Vårt urval har ett udda antal element (7), så medianen är helt enkelt elementet på index (n + 1) / 2
i det sorterade urvalet, där n
är storleken på urvalet.
Notera
När urvalet har ett jämnt antal element är medianen genomsnittet av elementen på index
n / 2
ochn / 2 - 1
i det sorterade urvalet.
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 urval är redan sorterat och har 8 element, så n / 2 - 1 = 3
och sample[3]
är 10. n / 2 = 4
och sample[4]
är 15. Därför är vår median (10 + 15) / 2 = 12.5
.
Spridningsmått
Två spridningsmått är varians och standardavvikelse. Varians mäter hur utspridd datan är. Det är lika med medelvärdet av de kvadrerade skillnaderna mellan varje värde och medelvärdet.
Standardavvikelse är kvadratroten av variansen. Det ger ett mått på hur utspridd datan är i samma enheter som datan.
NumPy har funktionen var()
för att beräkna variansen av urvalet och funktionen std()
för att beräkna standardavvikelsen av urvalet:
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}')
Beräkningar i högre dimensionella arrayer
Alla dessa funktioner har en andra parameter axis
. Dess standardvärde är None
, vilket innebär att måttet kommer att beräknas längs en utplattad array (även om den ursprungliga arrayen är 2D eller högre dimensionell).
Du kan också specificera den exakta axeln längs vilken du vill beräkna måttet:
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))
Bilden nedan visar strukturen för exam_scores
-arrayen som används i uppgiften:
Swipe to start coding
Du analyserar exam_scores
arrayen, en 2D-array av simulerade testresultat för 2 studenter (2 rader) över 5 olika prov (5 kolumner).
-
Beräkna medelvärdet för varje student genom att specificera det andra nyckelordsargumentet.
-
Beräkna medianen av alla resultat.
-
Beräkna variansen av alla resultat.
-
Beräkna standardavvikelsen av alla resultat.
Lösning
Tack för dina kommentarer!