Calcular percentil em Python

Azaz Farooq 30 janeiro 2023
  1. Calcule o percentil em Python usando o pacote scipy
  2. Calcule o percentil em Python usando o pacote NumPy
  3. Calcule o percentil em Python usando o pacote math
  4. Calcule o percentil em Python usando o pacote statistics
  5. Calcule o percentil em Python usando o método de interpolação linear do NumPy
  6. Calcule o percentil em Python usando o método de interpolação inferior do NumPy
  7. Calcule o percentil em Python usando o método de interpolação superior do NumPy
  8. Calcule o percentil em Python usando o método de interpolação de ponto médio do NumPy
Calcular percentil em Python

Os percentis indicam a porcentagem de pontuações que ficam abaixo de um determinado valor. Um indivíduo com QI de 120, por exemplo, está no percentil 91, o que significa que seu QI é maior do que 91% das outras pessoas.

Este artigo irá discutir alguns métodos para calcular percentil em Python.

Calcule o percentil em Python usando o pacote scipy

Este pacote calculará a pontuação da série de entrada em um determinado percentil. A sintaxe da função scoreatpercentile() é fornecida abaixo:

scipy.stats.scoreatpercentile(
    a, per, limit=(), interpolation_method="fraction", axis=None
)

Na função scoreatpercentile(), o parâmetro a representa un array 1-D e per especifica o percentil que varia de 0 a 100. Os outros dois parâmetros são opcionais. A biblioteca NumPy é usada para obter os números sobre os quais calculamos o percentil.

O código de exemplo completo é fornecido abaixo.

from scipy import stats
import numpy as np

array = np.arange(100)

percentile = stats.scoreatpercentile(array, 50)

print("The percentile is:", percentile)

Resultado:

The percentile is: 49.5

Calcule o percentil em Python usando o pacote NumPy

Este pacote possui uma função percentile() que calculará o percentil de determinado array. A sintaxe da função percentile() é fornecida abaixo.

numpy.percentile(
    a,
    q,
    axis=None,
    out=None,
    overwrite_input=False,
    interpolation="linear",
    keepdims=False,
)

O parâmetro q representa o número do cálculo do percentil. a representa un array, enquanto os outros parâmetros são opcionais.

O código de exemplo completo é fornecido abaixo.

import numpy as np

arry = np.array([4, 6, 8, 10, 12])

percentile = np.percentile(arry, 50)

print("The percentile is:", percentile)

Resultado:

The percentile is: 8.0

Calcule o percentil em Python usando o pacote math

O pacote math com a sua função básica - ceil pode ser usado para calcular diferentes percentis.

O código de exemplo completo é fornecido abaixo.

import math

arry = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def calculate_percentile(arry, percentile):
    size = len(arry)
    return sorted(arry)[int(math.ceil((size * percentile) / 100)) - 1]


percentile_25 = calculate_percentile(arry, 25)
percentile_50 = calculate_percentile(arry, 50)
percentile_75 = calculate_percentile(arry, 75)

print("The 25th percentile is:", percentile_25)
print("The 50th percentile is:", percentile_50)
print("The 75th percentile is:", percentile_75)

O math.ceil(x) arredonda o valor e retorna o menor inteiro maior ou igual a x, enquanto a função sorted ordena a matriz.

Resultado:

The 25th percentile is: 3
The 50th percentile is: 5
The 75th percentile is: 8

Calcule o percentil em Python usando o pacote statistics

A função quantiles() no pacote statistics é usada para quebrar os dados em probabilidades iguais e retornar uma lista de distribuição de n-1. A sintaxe desta função é fornecida a seguir.

statistics.quantiles(data, *, n=4, method='exclusive')

O código de exemplo completo é fornecido abaixo.

from statistics import quantiles

data = [1, 2, 3, 4, 5]

percentle = quantiles(data, n=4)

print("The Percentile is:", percentle)

Resultado:

The Percentile is: [1.5, 3.0, 4.5]

Calcule o percentil em Python usando o método de interpolação linear do NumPy

Podemos calcular diferentes percentis usando o modo de interpolação. Os modos de interpolação são linear, lower, higher, midpoint e nearest. Essas interpolações são usadas quando os percentis estão entre dois pontos de dados, i e j. Quando o valor do percentil é i, é o modo de interpolação inferior, j representa o modo de interpolação superior e i + (j - i) * fração representa o modo linear onde fração indica o índice rodeado por i E j.

O código de exemplo completo para o modo de interpolação linear é fornecido abaixo.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "linear")

percentile_10 = np.percentile(arry, 10, interpolation="linear")
percentile_50 = np.percentile(arry, 50, interpolation="linear")
percentile_75 = np.percentile(arry, 75, interpolation="linear")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Usamos a função numpy.percentile() com o parâmetro adicional interpolation. Você pode ver que obtemos valores flutuantes para esta interpolação.

Resultado:

percentiles using interpolation =  linear
percentile_10 =  1.9 , median =  5.5  and percentile_75 =  7.75

Calcule o percentil em Python usando o método de interpolação inferior do NumPy

O código de exemplo completo para o modo de interpolação inferior é fornecido abaixo.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "lower")

percentile_10 = np.percentile(arry, 10, interpolation="lower")
percentile_50 = np.percentile(arry, 50, interpolation="lower")
percentile_75 = np.percentile(arry, 75, interpolation="lower")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Resultado:

percentiles using interpolation =  lower
percentile_10 =  1 , median =  5  and percentile_75 =  7

Você pode ver que o percentil final é desviado para o valor mais baixo.

Calcule o percentil em Python usando o método de interpolação superior do NumPy

Este método fornecerá percentis do array fornecida ao maior valor de arredondamento.

O código de exemplo completo para modo de interpolação superior é fornecido abaixo.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "higher")

percentile_10 = np.percentile(arry, 10, interpolation="higher")
percentile_50 = np.percentile(arry, 50, interpolation="higher")
percentile_75 = np.percentile(arry, 75, interpolation="higher")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Resultado:

percentiles using interpolation =  higher
percentile_10 =  2 , median =  6  and percentile_75 =  8

Calcule o percentil em Python usando o método de interpolação de ponto médio do NumPy

Este método fornecerá pontos médios dos valores percentuais.

O código de exemplo completo para o modo de interpolação de ponto médio é fornecido abaixo.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "midpoint")

percentile_10 = np.percentile(arry, 10, interpolation="midpoint")
percentile_50 = np.percentile(arry, 50, interpolation="midpoint")
percentile_75 = np.percentile(arry, 75, interpolation="midpoint")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Resultado:

percentiles using interpolation =  midpoint
percentile_10 =  1.5 , median =  5.5  and percentile_75 =  7.5

Artigo relacionado - Python Math

Artigo relacionado - Python NumPy