

Bild vom Herausgeber
# Einführung
Wenn Sie gerade erst mit der Datenwissenschaft beginnen, denken Sie vielleicht, dass Sie Instruments wie Python, R oder andere Software program benötigen, um statistische Analysen von Daten durchzuführen. Allerdings ist die Befehlszeile bereits ein leistungsstarkes statistisches Toolkit.
Befehlszeilentools können große Datensätze oft schneller verarbeiten, als sie in speicherintensive Anwendungen zu laden. Sie sind einfach zu skripten und zu automatisieren. Darüber hinaus funktionieren diese Instruments auf jedem Unix-System ohne irgendetwas installieren.
In diesem Artikel erfahren Sie, wie Sie wichtige statistische Operationen direkt von Ihrem Terminal aus nur mit integrierten Unix-Instruments durchführen.
🔗 Hier ist das Bash-Skript auf GitHub. Es wird dringend empfohlen, mitzuprogrammieren, um die Konzepte vollständig zu verstehen.
Um diesem Tutorial folgen zu können, benötigen Sie:
- Sie benötigen eine Unix-ähnliche Umgebung (Linux, macOS oder Home windows mit WSL).
- Wir verwenden nur Normal-Unix-Instruments, die bereits installiert sind.
Öffnen Sie Ihr Terminal, um zu beginnen.
# Beispieldaten einrichten
Bevor wir Daten analysieren können, benötigen wir einen Datensatz. Erstellen Sie eine einfache CSV-Datei, die den täglichen Web site-Verkehr darstellt, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:
cat > visitors.csv << EOF
date,guests,page_views,bounce_rate
2024-01-01,1250,4500,45.2
2024-01-02,1180,4200,47.1
2024-01-03,1520,5800,42.3
2024-01-04,1430,5200,43.8
2024-01-05,980,3400,51.2
2024-01-06,1100,3900,48.5
2024-01-07,1680,6100,40.1
2024-01-08,1550,5600,41.9
2024-01-09,1420,5100,44.2
2024-01-10,1290,4700,46.3
EOF
Dadurch wird eine neue Datei mit dem Namen erstellt Visitors.csv mit Kopfzeilen und zehn Zeilen mit Beispieldaten.
# Erkunden Sie Ihre Daten
// Zeilen in Ihrem Datensatz zählen
Eines der ersten Dinge, die man in einem Datensatz identifizieren kann, ist die Anzahl der darin enthaltenen Datensätze. Der wc (Wortanzahl) Befehl mit dem -l Flag zählt die Anzahl der Zeilen in einer Datei:
Die Ausgabe zeigt: 11 visitors.csv (insgesamt 11 Zeilen, minus 1 Kopfzeile = 10 Datenzeilen).
// Anzeigen Ihrer Daten
Bevor mit den Berechnungen begonnen wird, ist es hilfreich, die Datenstruktur zu überprüfen. Der head Der Befehl zeigt die ersten paar Zeilen einer Datei an:
Hier werden die ersten fünf Zeilen angezeigt, sodass Sie eine Vorschau der Daten anzeigen können.
date,guests,page_views,bounce_rate
2024-01-01,1250,4500,45.2
2024-01-02,1180,4200,47.1
2024-01-03,1520,5800,42.3
2024-01-04,1430,5200,43.8
// Extrahieren einer einzelnen Spalte
Um mit bestimmten Spalten in einer CSV-Datei zu arbeiten, verwenden Sie die schneiden Befehl mit Trennzeichen und Feldnummer. Der folgende Befehl extrahiert die Besucherspalte:
lower -d',' -f2 visitors.csv | tail -n +2
Dies extrahiert Feld 2 (Besucherspalte) mit lowerUnd tail -n +2 überspringt die Kopfzeile.
# Berechnung von Maßen der zentralen Tendenz
// Den Mittelwert ermitteln (Durchschnitt)
Der Mittelwert ist die Summe aller Werte dividiert durch die Anzahl der Werte. Wir können dies berechnen, indem wir die Zielspalte extrahieren und dann verwenden awk Werte akkumulieren:
lower -d',' -f2 visitors.csv | tail -n +2 | awk '{sum+=$1; rely++} END {print "Imply:", sum/rely}'
Der awk Der Befehl akkumuliert die Summe und zählt, während er jede Zeile verarbeitet, und teilt sie dann durch END Block.
Als nächstes berechnen wir den Median und den Modus.
// Den Median finden
Der Median ist der Mittelwert beim Sortieren des Datensatzes. Bei einer geraden Anzahl von Werten ist es der Durchschnitt der beiden Mittelwerte. Sortieren Sie zuerst die Daten und finden Sie dann die Mitte:
lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk '{arr(NR)=$1; rely=NR} END {if(countpercent2==1) print "Median:", arr((rely+1)/2); else print "Median:", (arr(rely/2)+arr(rely/2+1))/2}'
Dadurch werden die Daten numerisch sortiert kind -nspeichert Werte in einem Array und ermittelt dann den Mittelwert (oder den Durchschnitt der beiden Mittelwerte, wenn die Anzahl gerade ist).
// Den Modus finden
Der Modus ist der am häufigsten vorkommende Wert. Wir finden dies, indem wir sortieren, Duplikate zählen und ermitteln, welcher Wert am häufigsten vorkommt:
lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | uniq -c | kind -rn | head -n 1 | awk '{print "Mode:", $2, "(seems", $1, "occasions)"}'
Dadurch werden Werte sortiert und Duplikate gezählt uniq -csortiert nach Häufigkeit in umgekehrter Reihenfolge und wählt das oberste Ergebnis aus.
# Berechnung von Streuungsmaßen (oder Ausbreitungsmaßen)
// Den Maximalwert finden
Um den größten Wert in Ihrem Datensatz zu finden, vergleichen wir jeden Wert und verfolgen den Maximalwert:
awk -F',' 'NR>1 {if($2>max) max=$2} END {print "Most:", max}' visitors.csv
Dadurch wird der Header mit übersprungen NR>1vergleicht jeden Wert mit dem aktuellen Maximalwert und aktualisiert ihn, wenn ein größerer Wert gefunden wird.
// Den Mindestwert finden
Um den kleinsten Wert zu finden, initialisieren Sie auf ähnliche Weise ein Minimal aus der ersten Datenzeile und aktualisieren Sie es, wenn kleinere Werte gefunden werden:
awk -F',' 'NR==2 {min=$2} NR>2 {if($2<min) min=$2} END {print "Minimal:", min}' visitors.csv
Führen Sie die obigen Befehle aus, um die Maximal- und Minimalwerte abzurufen.
// Finden von Min und Max
Anstatt zwei separate Befehle auszuführen, können wir sowohl das Minimal als auch das Most in einem einzigen Durchgang ermitteln:
awk -F',' 'NR==2 {min=$2; max=$2} NR>2 {if($2max) max=$2} END {print "Min:", min, "Max:", max}' visitors.csv
Dieser Single-Go-Ansatz initialisiert beide Variablen aus der ersten Zeile und aktualisiert sie dann einzeln.
// Berechnen der (Bevölkerungs-)Standardabweichung
Die Standardabweichung misst, wie weit die Werte vom Mittelwert abweichen. Für eine vollständige Grundgesamtheit verwenden Sie diese Formel:
awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; print "Std Dev:", sqrt((sumsq/rely)-(imply*imply))}' visitors.csv
Dies akkumuliert die Summe und die Summe der Quadrate und wendet dann die Formel an: ( sqrt{frac{sum x^2}{N} – mu^2} ), was die Ausgabe ergibt:
// Berechnung der Standardabweichung der Stichprobe
Wenn Sie mit einer Stichprobe und nicht mit einer vollständigen Grundgesamtheit arbeiten, verwenden Sie Bessels Korrektur (Dividieren durch ( n-1 )) für unvoreingenommene Stichprobenschätzungen:
awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; print "Pattern Std Dev:", sqrt((sumsq-(sum*sum/rely))/(count-1))}' visitors.csv
Dies ergibt:
// Varianz berechnen
Varianz ist das Quadrat der Standardabweichung. Es ist ein weiteres Maß für die Streuung, das in vielen statistischen Berechnungen nützlich ist:
awk -F',' 'NR>1 {sum+=$2; sumsq+=$2*$2; rely++} END {imply=sum/rely; var=(sumsq/rely)-(imply*imply); print "Variance:", var}' visitors.csv
Diese Berechnung spiegelt die Standardabweichung wider, lässt jedoch die Quadratwurzel weg.
# Berechnung von Perzentilen
// Quartile berechnen
Quartile teilen sortierte Daten in vier gleiche Teile. Sie sind besonders nützlich, um die Datenverteilung zu verstehen:
lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk '
{arr(NR)=$1; rely=NR}
END {
q1_pos = (rely+1)/4
q2_pos = (rely+1)/2
q3_pos = 3*(rely+1)/4
print "Q1 (twenty fifth percentile):", arr(int(q1_pos))
print "Q2 (Median):", (countpercent2==1) ? arr(int(q2_pos)) : (arr(rely/2)+arr(rely/2+1))/2
print "Q3 (seventy fifth percentile):", arr(int(q3_pos))
}'
Dieses Skript speichert sortierte Werte in einem Array, berechnet Quartilpositionen mithilfe der Formel ( (n+1)/4 ) und extrahiert Werte an diesen Positionen. Der Code gibt Folgendes aus:
Q1 (twenty fifth percentile): 1100
Q2 (Median): 1355
Q3 (seventy fifth percentile): 1520
// Berechnen eines beliebigen Perzentils
Sie können jedes Perzentil berechnen, indem Sie die Positionsberechnung anpassen. Der folgende versatile Ansatz verwendet lineare Interpolation:
PERCENTILE=90
lower -d',' -f2 visitors.csv | tail -n +2 | kind -n | awk -v p=$PERCENTILE '
{arr(NR)=$1; rely=NR}
END {
pos = (rely+1) * p/100
idx = int(pos)
frac = pos - idx
if(idx >= rely) print p "th percentile:", arr(rely)
else print p "th percentile:", arr(idx) + frac * (arr(idx+1) - arr(idx))
}'
Dies berechnet die Place als ( (n+1) occasions (Perzentil/100) ) und verwendet dann eine lineare Interpolation zwischen Array-Indizes für Bruchpositionen.
# Arbeiten mit mehreren Spalten
Häufig möchten Sie Statistiken über mehrere Spalten gleichzeitig berechnen. So berechnen Sie gleichzeitig Durchschnittswerte für Besucher, Seitenaufrufe und Absprungrate:
awk -F',' '
NR>1 {
v_sum += $2
pv_sum += $3
br_sum += $4
rely++
}
END {
print "Common guests:", v_sum/rely
print "Common web page views:", pv_sum/rely
print "Common bounce price:", br_sum/rely
}' visitors.csv
Dadurch werden für jede Spalte separate Akkumulatoren verwaltet und in allen drei wird die gleiche Anzahl verwendet, was die folgende Ausgabe ergibt:
Common guests: 1340
Common web page views: 4850
Common bounce price: 45.06
// Berechnung der Korrelation
Korrelation misst die Beziehung zwischen zwei Variablen. Der Pearson-Korrelationskoeffizient reicht von -1 (perfekte destructive Korrelation) bis 1 (perfekte constructive Korrelation):
awk -F', *' '
NR>1 {
x(NR-1) = $2
y(NR-1) = $3
sum_x += $2
sum_y += $3
rely++
}
END {
if (rely < 2) exit
mean_x = sum_x / rely
mean_y = sum_y / rely
for (i = 1; i <= rely; i++) {
dx = x(i) - mean_x
dy = y(i) - mean_y
cov += dx * dy
var_x += dx * dx
var_y += dy * dy
}
sd_x = sqrt(var_x / rely)
sd_y = sqrt(var_y / rely)
correlation = (cov / rely) / (sd_x * sd_y)
print "Correlation:", correlation
}' visitors.csv
Dadurch wird die Pearson-Korrelation berechnet, indem die Kovarianz durch das Produkt der Standardabweichungen dividiert wird.
# Abschluss
Die Befehlszeile ist ein leistungsstarkes Werkzeug für statistische Analysen. Sie können große Datenmengen verarbeiten, komplexe Statistiken berechnen und Berichte automatisieren – und das alles, ohne etwas zu installieren, das über das hinausgeht, was bereits auf Ihrem System vorhanden ist.
Diese Fähigkeiten ergänzen Ihre Python- und R-Kenntnisse, anstatt sie zu ersetzen. Verwenden Sie Befehlszeilentools für eine schnelle Untersuchung und Datenvalidierung und wechseln Sie dann bei Bedarf zu speziellen Instruments für komplexe Modellierung und Visualisierung.
Das Beste daran ist, dass diese Instruments auf praktisch jedem System verfügbar sind, das Sie in Ihrer Karriere als Datenwissenschaftler verwenden werden. Öffnen Sie Ihr Terminal und beginnen Sie mit der Erkundung Ihrer Daten.
Bala Priya C ist ein Entwickler und technischer Redakteur aus Indien. Sie arbeitet gerne an der Schnittstelle von Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Zu ihren Interessen- und Fachgebieten gehören DevOps, Datenwissenschaft und Verarbeitung natürlicher Sprache. Sie liebt es zu lesen, zu schreiben, zu programmieren und Kaffee zu trinken! Derzeit arbeitet sie daran, zu lernen und ihr Wissen mit der Entwickler-Group zu teilen, indem sie Tutorials, Anleitungen, Meinungsbeiträge und mehr verfasst. Bala erstellt außerdem ansprechende Ressourcenübersichten und Programmier-Tutorials.
