NumPy - Funzioni statistiche

NumPy ha alcune utili funzioni statistiche per trovare la deviazione standard e la varianza minima, massima, percentile, ecc. Dagli elementi dati nell'array. Le funzioni sono spiegate come segue:

numpy.amin () e numpy.amax ()

Queste funzioni restituiscono il minimo e il massimo dagli elementi nella matrice data lungo l'asse specificato.

Esempio

import numpy as np 
a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 

print 'Our array is:' 
print a  
print '\n'  

print 'Applying amin() function:' 
print np.amin(a,1) 
print '\n'  

print 'Applying amin() function again:' 
print np.amin(a,0) 
print '\n'  

print 'Applying amax() function:' 
print np.amax(a) 
print '\n'  

print 'Applying amax() function again:' 
print np.amax(a, axis = 0)

Produrrà il seguente output:

Our array is:
[[3 7 5]
[8 4 3]
[2 4 9]]

Applying amin() function:
[3 3 2]

Applying amin() function again:
[2 4 3]

Applying amax() function:
9

Applying amax() function again:
[8 7 9]

numpy.ptp ()

Il numpy.ptp() restituisce l'intervallo (massimo-minimo) di valori lungo un asse.

import numpy as np 
a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying ptp() function:' 
print np.ptp(a) 
print '\n'  

print 'Applying ptp() function along axis 1:' 
print np.ptp(a, axis = 1) 
print '\n'   

print 'Applying ptp() function along axis 0:'
print np.ptp(a, axis = 0)

Produrrà il seguente output:

Our array is:
[[3 7 5]
[8 4 3]
[2 4 9]]

Applying ptp() function:
7

Applying ptp() function along axis 1:
[4 5 7]

Applying ptp() function along axis 0:
[6 3 6]

numpy.percentile ()

Percentile (o centile) è una misura utilizzata nelle statistiche che indica il valore al di sotto del quale cade una determinata percentuale di osservazioni in un gruppo di osservazioni. La funzionenumpy.percentile() accetta i seguenti argomenti.

numpy.percentile(a, q, axis)

Dove,

Sr.No. Argomento e descrizione
1

a

Matrice di input

2

q

Il percentile da calcolare deve essere compreso tra 0 e 100

3

axis

L'asse lungo il quale calcolare il percentile

Esempio

import numpy as np 
a = np.array([[30,40,70],[80,20,10],[50,90,60]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying percentile() function:' 
print np.percentile(a,50) 
print '\n'  

print 'Applying percentile() function along axis 1:' 
print np.percentile(a,50, axis = 1) 
print '\n'  

print 'Applying percentile() function along axis 0:' 
print np.percentile(a,50, axis = 0)

Produrrà il seguente output:

Our array is:
[[30 40 70]
 [80 20 10]
 [50 90 60]]

Applying percentile() function:
50.0

Applying percentile() function along axis 1:
[ 40. 20. 60.]

Applying percentile() function along axis 0:
[ 50. 40. 60.]

numpy.median ()

Medianè definito come il valore che separa la metà superiore di un campione di dati dalla metà inferiore. Ilnumpy.median() viene utilizzata come mostrato nel programma seguente.

Esempio

import numpy as np 
a = np.array([[30,65,70],[80,95,10],[50,90,60]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying median() function:' 
print np.median(a) 
print '\n'  

print 'Applying median() function along axis 0:' 
print np.median(a, axis = 0) 
print '\n'  
 
print 'Applying median() function along axis 1:' 
print np.median(a, axis = 1)

Produrrà il seguente output:

Our array is:
[[30 65 70]
 [80 95 10]
 [50 90 60]]

Applying median() function:
65.0

Applying median() function along axis 0:
[ 50. 90. 60.]

Applying median() function along axis 1:
[ 65. 80. 60.]

numpy.mean ()

La media aritmetica è la somma degli elementi lungo un asse divisa per il numero di elementi. Ilnumpy.mean()funzione restituisce la media aritmetica degli elementi nell'array. Se viene menzionato l'asse, viene calcolato lungo di esso.

Esempio

import numpy as np 
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying mean() function:' 
print np.mean(a) 
print '\n'  

print 'Applying mean() function along axis 0:' 
print np.mean(a, axis = 0) 
print '\n'  

print 'Applying mean() function along axis 1:' 
print np.mean(a, axis = 1)

Produrrà il seguente output:

Our array is:
[[1 2 3]
 [3 4 5]
 [4 5 6]]

Applying mean() function:
3.66666666667

Applying mean() function along axis 0:
[ 2.66666667 3.66666667 4.66666667]

Applying mean() function along axis 1:
[ 2. 4. 5.]

numpy.average ()

La media ponderata è una media risultante dalla moltiplicazione di ciascun componente per un fattore che ne riflette l'importanza. Ilnumpy.average()funzione calcola la media ponderata degli elementi in un array in base al rispettivo peso dato in un altro array. La funzione può avere un parametro asse. Se l'asse non è specificato, l'array viene appiattito.

Considerando un array [1,2,3,4] e pesi corrispondenti [4,3,2,1], la media pesata viene calcolata sommando il prodotto degli elementi corrispondenti e dividendo la somma per la somma dei pesi.

Media ponderata = (1 * 4 + 2 * 3 + 3 * 2 + 4 * 1) / (4 + 3 + 2 + 1)

Esempio

import numpy as np 
a = np.array([1,2,3,4]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying average() function:' 
print np.average(a) 
print '\n'  

# this is same as mean when weight is not specified 
wts = np.array([4,3,2,1]) 

print 'Applying average() function again:' 
print np.average(a,weights = wts) 
print '\n'  

# Returns the sum of weights, if the returned parameter is set to True. 
print 'Sum of weights' 
print np.average([1,2,3, 4],weights = [4,3,2,1], returned = True)

Produrrà il seguente output:

Our array is:
[1 2 3 4]

Applying average() function:
2.5

Applying average() function again:
2.0

Sum of weights
(2.0, 10.0)

In una matrice multidimensionale, è possibile specificare l'asse per il calcolo.

Esempio

import numpy as np 
a = np.arange(6).reshape(3,2) 

print 'Our array is:' 
print a 
print '\n'  

print 'Modified array:' 
wt = np.array([3,5]) 
print np.average(a, axis = 1, weights = wt) 
print '\n'  

print 'Modified array:' 
print np.average(a, axis = 1, weights = wt, returned = True)

Produrrà il seguente output:

Our array is:
[[0 1]
 [2 3]
 [4 5]]

Modified array:
[ 0.625 2.625 4.625]

Modified array:
(array([ 0.625, 2.625, 4.625]), array([ 8., 8., 8.]))

Deviazione standard

La deviazione standard è la radice quadrata della media delle deviazioni quadrate dalla media. La formula per la deviazione standard è la seguente:

std = sqrt(mean(abs(x - x.mean())**2))

Se la matrice è [1, 2, 3, 4], la sua media è 2,5. Quindi le deviazioni al quadrato sono [2,25, 0,25, 0,25, 2,25] e la radice quadrata della sua media divisa per 4, cioè sqrt (5/4) è 1,1180339887498949.

Esempio

import numpy as np 
print np.std([1,2,3,4])

Produrrà il seguente output:

1.1180339887498949

Varianza

La varianza è la media delle deviazioni al quadrato, ovvero mean(abs(x - x.mean())**2). In altre parole, la deviazione standard è la radice quadrata della varianza.

Esempio

import numpy as np 
print np.var([1,2,3,4])

Produrrà il seguente output:

1.25