5 scripts Bash vraiment utiles pour la science des données

5 scripts Bash vraiment utiles pour la science des données

Nœud source: 1961590

5 scripts Bash vraiment utiles pour la science des données
Image par auteur
 

Python, R et SQL sont souvent cités comme les langages les plus utilisés pour le traitement, la modélisation et l'exploration des données. Bien que cela puisse être vrai, il n'y a aucune raison pour que d'autres ne puissent pas être - ou ne soient pas - utilisés pour faire ce travail.

Le shell Bash est un shell de système d'exploitation Unix et de type Unix, ainsi que les commandes et le langage de programmation qui l'accompagnent. Les scripts Bash sont des programmes écrits à l'aide de ce langage de script shell Bash. Ces scripts sont exécutés séquentiellement par l'interpréteur Bash et peuvent inclure toutes les constructions généralement trouvées dans d'autres langages de programmation, y compris les instructions conditionnelles, les boucles et les variables.

Les utilisations courantes des scripts Bash incluent :

  • automatiser les tâches d'administration système
  • effectuer des sauvegardes et de la maintenance
  • analyse des fichiers journaux et d'autres données
  • création d'outils et d'utilitaires en ligne de commande

Les scripts Bash sont également utilisés pour orchestrer le déploiement et la gestion de systèmes distribués complexes, ce qui en fait une compétence extrêmement utile dans les domaines de l'ingénierie des données, des environnements de cloud computing et de DevOps.

Dans cet article, nous allons examiner cinq tâches différentes liées à la science des données et adaptées aux scripts, où nous devrions voir à quel point Bash peut être flexible et utile.

Nettoyer et formater les données brutes

 
Voici un exemple de script bash pour nettoyer et formater des fichiers de données brutes :

#!/bin/bash # Set the input and output file paths
input_file="raw_data.csv"
output_file="clean_data.csv" # Remove any leading or trailing whitespace from each line
sed 's/^[ t]*//;s/[ t]*$//' $input_file > $output_file # Replace any commas within quoted fields with a placeholder
sed -i 's/","/,/g' $output_file # Replace any newlines within quoted fields with a placeholder
sed -i 's/","/ /g' $output_file # Remove the quotes around each field
sed -i 's/"//g' $output_file # Replace the placeholder with the original comma separator
sed -i 's/,/","/g' $output_file echo "Data cleaning and formatting complete. Output file: $output_file"

Ce script :

  • suppose que votre fichier de données brutes se trouve dans un fichier CSV appelé raw_data.csv
  • enregistre les données nettoyées sous clean_data.csv
  • utilise l' sed commande de :
    • supprimer les espaces blancs de début/fin de chaque ligne et remplacer les virgules dans les champs entre guillemets par un espace réservé
    • remplacer les nouvelles lignes dans les champs entre guillemets par un espace réservé
    • supprimer les guillemets autour de chaque champ
    • remplacer l'espace réservé par le séparateur de virgule d'origine
  • imprime un message indiquant que le nettoyage et le formatage des données sont terminés, ainsi que l'emplacement du fichier de sortie

Automatisez la visualisation des données

 
Voici un exemple de script bash pour automatiser les tâches de visualisation de données :

#!/bin/bash # Set the input file path
input_file="data.csv" # Create a line chart of column 1 vs column 2
gnuplot -e "set datafile separator ','; set term png; set output 'line_chart.png'; plot '$input_file' using 1:2 with lines" # Create a bar chart of column 3
gnuplot -e "set datafile separator ','; set term png; set output 'bar_chart.png'; plot '$input_file' using 3:xtic(1) with boxes" # Create a scatter plot of column 4 vs column 5
gnuplot -e "set datafile separator ','; set term png; set output 'scatter_plot.png'; plot '$input_file' using 4:5 with points" echo "Data visualization complete. Output files: line_chart.png, bar_chart.png, scatter_plot.png"

Le script ci-dessus :

  • suppose que vos données se trouvent dans un fichier CSV appelé data.csv
  • utilise l' gnuplot commande pour créer trois types de tracés différents :
    • un graphique linéaire de la colonne 1 par rapport à la colonne 2
    • un graphique à barres de la colonne 3
    • un nuage de points de la colonne 4 par rapport à la colonne 5
  • génère les tracés au format png et les enregistre sous line_chart.png, bar_chart.pnget la scatter_plot.png respectivement
  • imprime un message indiquant que la visualisation des données est terminée et l'emplacement des fichiers de sortie

Veuillez noter que pour que ce script fonctionne, il faudrait ajuster les numéros de colonne et les types de graphiques en fonction de vos données et de vos besoins.

Analyses statistiques

 
Voici un exemple de script bash pour effectuer une analyse statistique sur un ensemble de données :

#!/bin/bash # Set the input file path
input_file="data.csv" # Set the output file path
output_file="statistics.txt" # Use awk to calculate the mean of column 1
mean=$(awk -F',' '{sum+=$1} END {print sum/NR}' $input_file) # Use awk to calculate the standard deviation of column 1
stddev=$(awk -F',' '{sum+=$1; sumsq+=$1*$1} END {print sqrt(sumsq/NR - (sum/NR)**2)}' $input_file) # Append the results to the output file
echo "Mean of column 1: $mean" >> $output_file
echo "Standard deviation of column 1: $stddev" >> $output_file # Use awk to calculate the mean of column 2
mean=$(awk -F',' '{sum+=$2} END {print sum/NR}' $input_file) # Use awk to calculate the standard deviation of column 2
stddev=$(awk -F',' '{sum+=$2; sumsq+=$2*$2} END {print sqrt(sumsq/NR - (sum/NR)**2)}' $input_file) # Append the results to the output file
echo "Mean of column 2: $mean" >> $output_file
echo "Standard deviation of column 2: $stddev" >> $output_file echo "Statistical analysis complete. Output file: $output_file"

Ce script :

  • suppose que vos données se trouvent dans un fichier CSV appelé data.csv
  • utilise l' awk commande pour calculer la moyenne et l'écart type de 2 colonnes
  • sépare les données par une virgule
  • enregistre les résultats dans un fichier texte statistics.txt.
  • imprime un message indiquant que l'analyse statistique est terminée et l'emplacement du fichier de sortie

Notez que vous pouvez ajouter plus awk commandes pour calculer d'autres valeurs statistiques ou pour plus de colonnes.

Gérer les dépendances des packages Python

Voici un exemple de script bash pour gérer et mettre à jour les dépendances et les packages requis pour les projets de science des données :

#!/bin/bash # Set the path of the virtual environment
venv_path="venv" # Activate the virtual environment
source $venv_path/bin/activate # Update pip
pip install --upgrade pip # Install required packages from requirements.txt
pip install -r requirements.txt # Deactivate the virtual environment
deactivate echo "Dependency and package management complete."

Ce script :

  • suppose que vous avez configuré un environnement virtuel et un fichier nommé requirements.txt contenant les noms et les versions des packages que vous souhaitez installer
  • utilise l' source commande pour activer un environnement virtuel spécifié par le chemin venv_path.
  • Usages pip mettre à niveau pip à la dernière version
  • installe les packages spécifiés dans le requirements.txt filet
  • utilise la commande deactivate pour désactiver l'environnement virtuel après l'installation des packages
  • imprime un message indiquant que la gestion des dépendances et des packages est terminée

Ce script doit être exécuté chaque fois que vous souhaitez mettre à jour vos dépendances ou installer de nouveaux packages pour un projet de science des données.

Gérer l'exécution du notebook Jupyter

Voici un exemple de script bash pour automatiser l'exécution de Jupyter Notebook ou d'autres environnements interactifs de science des données :

#!/bin/bash # Set the path of the notebook file
notebook_file="analysis.ipynb" # Set the path of the virtual environment
venv_path="venv" # Activate the virtual environment
source $venv_path/bin/activate # Start Jupyter Notebook
jupyter-notebook $notebook_file # Deactivate the virtual environment
deactivate echo "Jupyter Notebook execution complete."

Le script ci-dessus :

  • suppose que vous avez configuré un environnement virtuel et que Jupyter Notebook y est installé
  • utilise l' source commande pour activer un environnement virtuel, spécifié par le chemin venv_path
  • utilise l' jupyter-notebook commande pour démarrer Jupyter Notebook et ouvrir le fichier spécifié notebook_file
  • utilise l' deactivate commande pour désactiver l'environnement virtuel après l'exécution de Jupyter Notebook
  • imprime un message indiquant que l'exécution de Jupyter Notebook est terminée

Ce script doit être exécuté chaque fois que vous souhaitez exécuter un bloc-notes Jupyter ou d'autres environnements de science des données interactifs.

 
J'espère que ces scripts simples ont suffi à vous montrer la simplicité et la puissance des scripts avec Bash. Ce n'est peut-être pas la solution idéale pour toutes les situations, mais elle a certainement sa place. Bonne chance dans votre script.

 
 
Matthieu Mayo (@mattmayo13) est un scientifique des données et le rédacteur en chef de KDnuggets, la ressource en ligne phare de la science des données et de l'apprentissage automatique. Ses intérêts portent sur le traitement du langage naturel, la conception et l'optimisation d'algorithmes, l'apprentissage non supervisé, les réseaux de neurones et les approches automatisées de l'apprentissage automatique. Matthew détient une maîtrise en informatique et un diplôme d'études supérieures en exploration de données. Il peut être contacté à editor1 à kdnuggets[dot]com.
 

Horodatage:

Plus de KDnuggetsGenericName