10 Python Mathons & Statistical Analysis One-Liners

 10 Python Mathons & Statistical Analysis One-Liners


Python Math & Statistical Analysis One-Liners
Image de l’auteur | Idéogramme

La syntaxe expressive de Python ainsi que ses modules intégrés et ses bibliothèques externes permettent d’effectuer des opérations mathématiques et statistiques complexes avec un code remarquablement concis.

Dans cet article, nous passerons en revue quelques doublures utiles pour les mathématiques et l’analyse statistique. Ces doublures montrent comment extraire des informations significatives à partir de données avec un code minimal tout en maintenant la lisibilité et l’efficacité.

🔗 Lien vers le code sur github

Échantillons de données

Avant de coder nos one-liners, créons quelques exemples de jeux de données avec lesquels travailler:

import numpy as np
import pandas as pd
from collections import Counter
import statistics

# Sample datasets
numbers = (12, 45, 7, 23, 56, 89, 34, 67, 21, 78, 43, 65, 32, 54, 76)
grades = (78, 79, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96)
sales_data = (1200, 1500, 800, 2100, 1800, 950, 1600, 2200, 1400, 1750,3400)
temperatures = (55.2, 62.1, 58.3, 64.7, 60.0, 61.8, 59.4, 63.5, 57.9, 56.6)

Veuillez noter: Dans les extraits de code qui suivent, j’ai exclu les instructions d’impression.

1. Calculer la moyenne, la médiane et le mode

Lors de l’analyse des ensembles de données, vous avez souvent besoin de plusieurs mesures de tendance centrale à comprendre la distribution de vos données. Cette one-liner calcule les trois statistiques clés dans une seule expression, offrant un aperçu complet des caractéristiques centrales de vos données.

stats = (statistics.mean(grades), statistics.median(grades), statistics.mode(grades))

Cette expression utilise le module statistique de Python pour calculer la moyenne arithmétique, la valeur moyenne et la valeur la plus fréquente en une affectation de tuple.

2. Trouvez des valeurs aberrantes en utilisant la gamme interquartile

L’identification des valeurs aberrantes est nécessaire pour l’évaluation de la qualité des données et la détection des anomalies. Cette ligne unique implémente la méthode IQR standard pour signaler les valeurs qui tombent considérablement en dehors de la plage typique, vous aidant à repérer des erreurs de saisie potentielles ou des observations véritablement inhabituelles.

outliers = (x for x in sales_data if x < np.percentile(sales_data, 25) - 1.5 * (np.percentile(sales_data, 75) - np.percentile(sales_data, 25)) or x > np.percentile(sales_data, 75) + 1.5 * (np.percentile(sales_data, 75) - np.percentile(sales_data, 25)))

Cette compréhension de la liste calcule les premier et troisième quartiles, détermine l’IQR et identifie des valeurs au-delà de 1,5 fois l’IQR à partir des limites de quartile. La logique booléenne filtre l’ensemble de données d’origine pour retourner uniquement les valeurs éloignées.

3. Calculer la corrélation entre deux variables

Parfois, nous devons comprendre les relations entre les variables. Cette one-liner calcule le coefficient de corrélation de Pearson, quantifiant la force de relation linéaire entre deux ensembles de données et fournissant un aperçu immédiat de leur association.

correlation = np.corrcoef(temperatures, grades(:len(temperatures)))(0, 1)

La fonction Corrcoef Numpy renvoie une matrice de corrélation, et nous extraissons l’élément hors diagonale représentant la corrélation entre nos deux variables. Le tranchage garantit que les deux tableaux ont des dimensions correspondantes pour un calcul de corrélation approprié.

np.float64(0.062360807968294615)

4. Générer un résumé des statistiques descriptives

Un résumé statistique complet fournit des informations essentielles sur les caractéristiques de distribution de vos données. Cette ligne unique crée un dictionnaire contenant des statistiques descriptives clés, offrant une image complète des propriétés de votre ensemble de données dans une seule expression.

summary = {stat: getattr(np, stat)(numbers) for stat in ('mean', 'std', 'min', 'max', 'var')}

Cette compréhension du dictionnaire utilise .getattr() Pour appeler dynamiquement des fonctions Numpy, créant un mappage propre des noms statistiques à leurs valeurs calculées.

{'mean': np.float64(46.8),
 'std': np.float64(24.372662281061267),
 'min': np.int64(7),
 'max': np.int64(89),
 'var': np.float64(594.0266666666666)}

5. Normaliser les données en z-scores

La normalisation des données aux scores Z permet des comparaisons significatives entre différentes échelles et distributions. Cette ligne unique transforme vos données brutes en unités standardisées, exprimant chaque valeur comme le nombre d’écarts-types par rapport à la moyenne.

z_scores = ((x - np.mean(numbers)) / np.std(numbers) for x in numbers)

La compréhension de la liste applique la formule de score Z à chaque élément, en soustrayant la moyenne et en divisant par l’écart type.

(np.float64(-1.4278292456807755),
 np.float64(-0.07385323684555724),
 np.float64(-1.6329771258073238),
 np.float64(-0.9765039094023694),
 np.float64(0.3774720994328488),
...
 np.float64(0.29541294738222956),
 np.float64(1.1980636199390418))

6. Calculer la moyenne mobile

Les données de lissage des séries chronologiques aident à réduire les fluctuations et le bruit à court terme. Cette ligne unique calcule une moyenne roulante sur une fenêtre spécifiée, offrant une vue plus propre du mouvement directionnel de vos données.

moving_avg = (np.mean(sales_data(i:i+3)) for i in range(len(sales_data)-2))

La compréhension de la liste crée des fenêtres qui se chevauchent de trois valeurs consécutives, calculant la moyenne pour chaque fenêtre. Cette technique est particulièrement utile pour les données financières, les lectures de capteurs et toutes les mesures séquentielles où l’identification des tendances est importante.

(np.float64(1166.6666666666667),
 np.float64(1466.6666666666667),
 np.float64(1566.6666666666667),
 np.float64(1616.6666666666667),
 np.float64(1450.0),
 np.float64(1583.3333333333333),
 np.float64(1733.3333333333333),
 np.float64(1783.3333333333333),
 np.float64(2183.3333333333335))

7. Trouvez la plage de valeur la plus fréquente

La compréhension des modèles de distribution des données nécessite souvent d’identifier les zones de concentration dans votre ensemble de données. Cette ligne bacs à une ligne de vos données dans les gammes et trouve l’intervalle le plus peuplé, révélant où vos valeurs se regroupent la plus densément.

most_frequent_range = Counter((int(x//10)*10 for x in numbers)).most_common(1)(0)

Les valeurs des bacs d’expression dans des décennies, crée un nombre de fréquences en utilisant Counteret extrait la plage la plus courante. Cette approche est précieuse pour l’analyse de l’histogramme et la compréhension des caractéristiques de distribution des données sans traçage complexe.

8. Calculer le taux de croissance annuel composé

L’analyse financière et commerciale nécessite souvent de comprendre les trajectoires de croissance au fil du temps. Cette one-liner calcule le taux de croissance annuel composé, offrant une mesure standardisée de l’investissement ou des performances commerciales sur différentes périodes.

cagr = (sales_data(-1) / sales_data(0)) ** (1 / (len(sales_data) - 1)) - 1

La formule prend le rapport des valeurs finales et finales, le soulève à la puissance de la période réciproque de la période et soustrait celle pour obtenir le taux de croissance. Ce calcul suppose que chaque point de données représente une période de temps dans votre analyse.

9. Calculer les totaux de course

Les calculs cumulatifs aident à suivre les changements progressifs et à identifier les points d’inflexion dans vos données. Cette ligne unique génère des totaux de course, montrant comment les valeurs s’accumulent dans le temps.

running_totals = (sum(sales_data(:i+1)) for i in range(len(sales_data)))

La compréhension de la liste étend progressivement la tranche du début à chaque position, calculant les sommes cumulatives.

(1200, 2700, 3500, 5600, 7400, 8350, 9950, 12150, 13550, 15300, 18700)

10. Calculer le coefficient de variation

La comparaison de la variabilité entre les ensembles de données avec différentes échelles nécessite des mesures relatives de la dispersion. Cette one-liner calcule le coefficient de variation, exprimant l’écart-type en pourcentage de la moyenne pour des comparaisons significatives entre différentes unités de mesure.

cv = (np.std(temperatures) / np.mean(temperatures)) * 100

Le calcul divise l’écart type par la moyenne et se multiplie de 100 pour exprimer le résultat en pourcentage. Cette mesure standardisée de la variabilité est particulièrement utile lors de la comparaison des ensembles de données avec différentes unités ou échelles.

np.float64(4.840958085381635)

Conclusion

Ces one-liners Python montrent comment effectuer des opérations mathématiques et statistiques avec un code minimal. La clé pour écrire des doublures efficaces réside dans l’équilibre entre la concision avec la lisibilité, garantissant que votre code reste maintenable tout en maximisant l’efficacité.

N’oubliez pas que même si les doublures sont puissantes, des analyses complexes peuvent bénéficier de la rupture des opérations en plusieurs étapes pour un débogage plus facile.

Bala Priya C est développeur et écrivain technique d’Inde. Elle aime travailler à l’intersection des mathématiques, de la programmation, de la science des données et de la création de contenu. Ses domaines d’intérêt et d’expertise incluent DevOps, la science des données et le traitement du langage naturel. Elle aime lire, écrire, coder et café! Actuellement, elle travaille sur l’apprentissage et le partage de ses connaissances avec la communauté des développeurs en créant des tutoriels, des guides pratiques, des pièces d’opinion, etc. Bala crée également des aperçus de ressources engageants et des tutoriels de codage.





Source link

Related post