Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

483
Vistas
Función numpy para obtener el cuantil que corresponde a un valor dado

Veo muchas preguntas como esta para R, pero no pude encontrar una específicamente para Python, preferiblemente usando numpy.

Digamos que tengo una matriz de observaciones almacenadas en x . Puedo obtener el valor q * 100 por ciento de la población.

 # Import numpy import numpy as np # Get 75th percentile np.quantile(a=x, q=0.75)

Sin embargo, me preguntaba si hay una función que hace lo contrario. Es decir, una función numérica que toma un valor como entrada y devuelve q .

Para ampliar aún más esto, los objetos de distribución de scipy tienen un método ppf que me permite hacer esto. Estoy buscando algo similar en numpy. ¿Existe?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No es una función preparada, sino un fragmento compacto y razonablemente rápido:

 (a<value).mean()

Puede (al menos en mi máquina) obtener un rendimiento un poco mejor usando np.count_nonzero

 np.count_nonzero(a<value) / a.size

pero tbh ni siquiera me molestaría.

over 4 years ago · Santiago Trujillo Denunciar

0

Hay una función de conveniencia que hace esto. Tenga en cuenta que no es un inverso exacto porque las funciones de quantile / percentile no son exactas. Dada una matriz finita de observaciones, los percentiles tendrán valores discretos; en otras palabras, puede estar especificando una q que se encuentre entre esos valores y las funciones encuentren la más cercana.

 from scipy import stats import numpy as np stats.percentileofscore(np.arange(0,1,0.12), .65, 'weak') / 100
over 4 years ago · Santiago Trujillo Denunciar

0

Si se ordena x , el valor en el índice i es el percentil i / len(x) (más o menos, dependiendo de cómo desee tratar las condiciones de contorno). Si x no está ordenado, puede obtener el mismo valor sustituyendo x.argsort().argsort()[i] por i (o simplemente ordenando x primero). Dado que argsort es su propio inverso, el doble argsort le dice dónde caería cada elemento del original en la matriz ordenada.

Si desea encontrar el resultado de valores arbitrarios no necesariamente en x , puede aplicar np.searchsorted a una versión ordenada de x e interpolar el resultado. Puede usar un método más complicado, como ajustar una spline a los datos ordenados o algo similar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda