Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Data Science ist ein spannendes, aber auch noch relativ junges Arbeitsgebiet. Leider glauben viele Menschen und auch viele Unternehmen, dass man neue Technologien braucht, um die Probleme der Data Science zu lösen. Wie dieses Buch zeigt, kann man jedoch viele Dinge stattdessen mit der Kommandozeile erledigen, und das manchmal auf viel effizientere Weise.
Während meines Promotionsstudiums bin ich nach und nach von Microsoft Windows auf Linux umgestiegen. Da mir diese Umstellung zunächst etwas unheimlich war, habe ich zunächst beide Betriebssysteme nebeneinander installiert (ein sogenanntes Dual-Boot). Der Drang, zwischen Microsoft Windows und Linux hin und her zu wechseln, ließ schließlich nach, und irgendwann bastelte ich sogar an Arch Linux herum, mit dem du dir deinen eigenen Linux-Rechner von Grund auf selbst zusammenstellen kannst. Alles, was du bekommst, ist die Kommandozeile, und es liegt an dir, was du daraus machst. Aus der Not heraus habe ich mich schnell mit der Kommandozeile angefreundet. Als meine Freizeit knapper wurde, entschied ich mich schließlich für die Linux-Distribution Ubuntu, weil sie so einfach zu bedienen ist und eine große Community hat. Die meiste Zeit verbringe ich aber immer noch mit der Kommandozeile.
Es ist noch gar nicht so lange her, dass ich gemerkt habe, dass die Kommandozeile nicht nur zum Installieren von Software, zum Konfigurieren von Systemen und zum Durchsuchen von Dateien da ist. Ich habe angefangen, Tools wie cut
, sort
und sed
kennenzulernen. Das sind Beispiele für Kommandozeilen-Tools, die Daten als Eingabe nehmen, etwas damit machen und das Ergebnis ausgeben. Ubuntu bringt einige davon mit. Als ich erst einmal verstanden hatte, welches Potenzial in der Kombination dieser kleinen Tools steckt, war ich süchtig.
Als ich nach meiner Promotion zum Datenwissenschaftler wurde, wollte ich diesen Ansatz nutzen, um so viel wie möglich Data Science zu betreiben. Dank einiger neuer Open-Source-Befehlszeilen-Tools wie xml2json
, jq
und json2csv
konnte ich die Befehlszeile sogar für Aufgaben wie das Scrapen von Websites und die Verarbeitung großer Mengen von JSON-Daten nutzen.
Im September 2013 beschloss ich, einen Blogbeitrag mit dem Titel "7 Kommandozeilen-Tools für Data Science" zu schreiben . Zu meiner Überraschung bekam der Blogbeitrag viel Aufmerksamkeit und ich erhielt viele Vorschläge für andere Kommandozeilen-Tools. Ich begann mich zu fragen, ob der Blogbeitrag in ein Buch verwandelt werden könnte. Ich freute mich, dass etwa 10 Monate später und mit der Hilfe vieler talentierter Leute (siehe Danksagungen) die Antwort "Ja" lautete.
Ich erzähle diese persönliche Geschichte nicht so sehr, weil ich denke, dass du wissen solltest, wie dieses Buch entstanden ist, sondern weil ich dich wissen lassen möchte, dass auch ich die Kommandozeile kennenlernen musste. Weil die Kommandozeile so anders ist als eine grafische Benutzeroberfläche, kann sie anfangs beängstigend wirken. Aber wenn ich sie lernen konnte, kannst du das auch. Unabhängig davon, welches Betriebssystem du benutzt und wie du derzeit mit Daten arbeitest, wirst du nach der Lektüre dieses Buches in der Lage sein, Data Science auf der Kommandozeile zu betreiben. Auch wenn du bereits mit der Kommandozeile vertraut bist oder dich mit Shell-Skripten auskennst, ist die Wahrscheinlichkeit groß, dass du ein paar interessante Tricks oder Kommandozeilen-Tools entdeckst, die du für dein nächstes Data Science-Projekt nutzen kannst.
Was du von diesem Buch erwarten kannst
In diesem Buch geht es darum, Daten zu beschaffen, zu analysieren und zu modellieren - und zwar eine ganze Menge. In diesem Buch geht es nicht so sehr darum, wie man besser in diesen Data Science-Aufgaben wird. Es gibt bereits großartige Ressourcen, die zum Beispiel erklären, wann man welchen statistischen Test anwendet oder wie man Daten am besten visualisiert. Stattdessen soll dieses praktische Buch dich effizienter und produktiver machen, indem es dir beibringt, wie du diese Data Science-Aufgaben an der Kommandozeile erledigst.
In diesem Buch werden zwar mehr als 90 Kommandozeilen-Tools besprochen, aber das Wichtigste sind nicht die Tools selbst. Einige Kommandozeilen-Tools gibt es schon sehr lange, während andere durch bessere ersetzt werden. Neue Kommandozeilen-Tools werden entwickelt, während du dieses Buch liest. Im Laufe der Jahre habe ich viele erstaunliche Kommandozeilen-Tools entdeckt. Leider wurden einige von ihnen zu spät entdeckt, um noch in dieses Buch aufgenommen zu werden. Kurz gesagt: Kommandozeilen-Tools kommen und gehen. Aber das ist okay.
Das Wichtigste ist die Idee, die der Arbeit mit Tools, Pipes und Daten zugrunde liegt. Die meisten Kommandozeilen-Tools tun nur eine Sache, und zwar gut. Das ist Teil der Unix-Philosophie, die im Laufe des Buches immer wieder auftaucht. Wenn du dich mit der Kommandozeile vertraut gemacht hast, weißt, wie du Kommandozeilen-Tools kombinieren und sogar neue erstellen kannst, hast du eine unschätzbare Fähigkeit entwickelt.
Änderungen für die zweite Auflage
Obwohl die Kommandozeile als Technologie und Arbeitsweise zeitlos ist, wurden einige der in der ersten Ausgabe besprochenen Tools entweder durch neuere Tools ersetzt (z. B. csvkit
wurde weitgehend durch xsv
ersetzt) oder von ihren Entwicklern aufgegeben (z. B. drake
), oder sie waren eine suboptimale Wahl (z. B, weka
). Seit der Veröffentlichung der ersten Ausgabe im Oktober 2014 habe ich viel gelernt, entweder durch meine eigenen Erfahrungen oder durch das nützliche Feedback meiner Leserinnen und Leser. Auch wenn das Buch eher ein Nischenthema ist, weil es an der Schnittstelle zweier Fachgebiete liegt, ist das Interesse der Data-Science-Community ungebrochen, wie die vielen positiven Nachrichten zeigen, die ich fast täglich erhalte. Mit der Aktualisierung der ersten Ausgabe hoffe ich, dass das Buch noch mindestens fünf Jahre lang aktuell bleibt. Hier ist eine nicht vollständige Liste der Änderungen, die ich vorgenommen habe:
-
Ich habe
csvkit
so weit wie möglich durchxsv
ersetzt.xsv
ist eine schnellere Alternative zur Arbeit mit CSV-Dateien. -
In den Kapiteln 2 und 3 habe ich das VirtualBox-Image durch ein Docker-Image ersetzt. Docker ist eine schnellere und leichtere Möglichkeit, eine isolierte Umgebung zu betreiben.
-
Ich verwende jetzt
pup
anstelle vonscrape
, um mit HTML zu arbeiten.scrape
ist ein Python-Tool, das ich selbst entwickelt habe.pup
ist viel schneller, hat mehr Funktionen und ist einfacher zu installieren. -
Kapitel 6 wurde von Grund auf neu geschrieben. Anstelle von
drake
verwende ich jetztmake
für das Projektmanagement.drake
wird nicht mehr gepflegt undmake
ist viel ausgereifter und bei Entwicklern sehr beliebt. -
Ich habe
Rio
durchrush
ersetzt.Rio
ist ein klobiges Bash-Skript, das ich selbst erstellt habe.rush
ist ein R-Paket, das eine viel stabilere und flexiblere Art ist, R von der Kommandozeile aus zu benutzen. -
In Kapitel 9 habe ich Weka und BigML durch Vowpal Wabbit (
vw
) ersetzt. Weka ist alt und die Art und Weise, wie es von der Kommandozeile aus verwendet wird, ist klobig. BigML ist eine kommerzielle API, auf die ich mich nicht mehr verlassen möchte. Vowpal Wabbit ist ein sehr ausgereiftes Tool für maschinelles Lernen, das bei Yahoo! entwickelt wurde und jetzt bei Microsoft ist. -
Kapitel 10 ist ein völlig neues Kapitel über die Integration der Kommandozeile in bestehende Arbeitsabläufe, einschließlich Python, R und Apache Spark. In der ersten Ausgabe habe ich erwähnt, dass die Kommandozeile leicht in bestehende Arbeitsabläufe integriert werden kann, bin aber nie näher auf das Thema eingegangen. Dieses Kapitel behebt das.
Wie man dieses Buch liest
Im Allgemeinen empfehle ich dir, dieses Buch linear zu lesen. Sobald ein Konzept oder ein Kommandozeilenwerkzeug vorgestellt wird, ist die Wahrscheinlichkeit groß, dass ich es in einem späteren Kapitel verwende. In Kapitel 9 mache ich zum Beispiel ausgiebig Gebrauch von parallel
, das in Kapitel 8 ausführlich besprochen wird.
Data Science ist ein weites Feld, das viele andere Bereiche wie Programmierung, Datenvisualisierung und maschinelles Lernen berührt. Daher werden in diesem Buch viele interessante Themen angesprochen, die leider nicht ausführlich behandelt werden können. Am Ende jedes Kapitels gebe ich Anregungen für weitere Untersuchungen. Es ist nicht erforderlich, dass du dieses Material liest, um dem Buch zu folgen, aber wenn du interessiert bist, solltest du wissen, dass es noch viel mehr zu lernen gibt.
Für wen dieses Buch ist
Dieses Buch setzt nur eines voraus: dass du mit Daten arbeitest. Es spielt keine Rolle, welche Programmiersprache oder statistische Berechnungsumgebung du gerade verwendest. Das Buch erklärt alle notwendigen Konzepte von Anfang an.
Es spielt auch keine Rolle, ob dein Betriebssystem Microsoft Windows, macOS oder eine Linux-Variante ist. Dem Buch liegt ein Docker-Image bei, eine einfach zu installierende virtuelle Umgebung. Damit kannst du die Kommandozeilen-Tools ausführen und den Code-Beispielen in derselben Umgebung folgen, in der dieses Buch geschrieben wurde. Du musst keine Zeit damit verschwenden, herauszufinden, wie du alle Kommandozeilen-Tools und ihre Abhängigkeiten installierst.
Das Buch enthält einige Codes in Bash, Python und R. Es ist also hilfreich, wenn du etwas Programmiererfahrung hast, aber sie ist keineswegs erforderlich, um den Beispielen zu folgen.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Zeigt neue Begriffe, URLs, Verzeichnisnamen und Dateinamen an.
Constant width
-
Wird für Code und Befehle sowie innerhalb von Absätzen verwendet, um auf Befehlszeilentools und ihre Optionen hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst sie unter https://oreil.ly/data-science-at-cl aufrufen .
Schicke eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen. Der Autor stellt auch eine Version des Buches online zur Verfügung.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://youtube.com/oreillymedia
Danksagungen für die zweite Ausgabe (2021)
Seit dem Erscheinen der ersten Ausgabe sind sieben Jahre vergangen. In dieser Zeit und vor allem in den letzten 13 Monaten haben mir viele Menschen geholfen. Ohne sie wäre ich nie in der Lage gewesen, eine zweite Ausgabe zu schreiben.
Ich war wieder einmal mit drei wunderbaren Redakteurinnen bei O'Reilly gesegnet. Ich möchte Sarah "Embrace the deadline" Grey, Jess "Pedal to the metal" Haberman und Kate "Let it go" Galloway danken. Ihre zweiten Vornamen sagen schon alles. Mit ihrer unglaublichen Hilfe war ich in der Lage, die Fristen einzuhalten, Vollgas zu geben, wenn es darauf ankam, und schließlich loszulassen. Ich möchte auch ihren Kollegen Angela Rufino, Arthur Johnson, Cassandra Furtado, David Futato, Helen Monroe, Karen Montgomery, Kate Dullea, Kristen Brown, Marie Beaugureau, Marsee Henon, Nick Adams, Regina Wilkinson, Shannon Cutt, Shannon Turlington und Yasmina Greco dafür danken, dass die Zusammenarbeit mit O'Reilly so angenehm war.
Obwohl ich einen automatisierten Prozess habe, um den Code auszuführen und die Ergebnisse einzufügen (dank R Markdown und Docker), ist die Anzahl der Fehler, die ich machen konnte, beeindruckend. Danke an Aaditya Maruthi, Brian Eoff, Caitlin Hudon, Julia Silge Mike Dewar und Shane Reustle, dass ihr diese Anzahl immens reduziert habt. Natürlich sind die verbleibenden Fehler meine Verantwortung.
Ein besonderes Dankeschön gebührt Marc Canaleta. Im Oktober 2014, kurz nach Erscheinen der ersten Ausgabe, lud er mich ein, für sein Team bei Social Point in Barcelona einen eintägigen Workshop über Data Science at the Command Line zu geben. Wir wussten beide nicht, dass viele Workshops folgen würden. Das führte schließlich dazu, dass ich mein eigenes Unternehmen gründete: Data Science Workshops. Jedes Mal, wenn ich unterrichte, lerne ich etwas Neues. Sie wissen es wahrscheinlich nicht, aber jeder Schüler und jede Schülerin hat auf die eine oder andere Weise Einfluss auf dieses Buch genommen. Ihnen sage ich: Danke. Ich hoffe, ich kann noch sehr lange unterrichten.
Fesselnde Unterhaltungen, großartige Vorschläge und leidenschaftliche Pull Requests. Ich bin sehr dankbar für jeden einzelnen Beitrag der folgenden großzügigen Menschen: Adam Johnson, Andre Manook, Andrea Borruso, Andres Lowrie, Andrew Berisha, Andrew Gallant, Andrew Sanchez, Anicet Ebou, Anthony Egerton, Ben Isenhart,Chris Wiggins, Chrys Wu, Dan Nguyen, Darryl Amatsetam, Dmitriy Rozhkov, Doug Needham, Edgar Manukyan, Erik Swan, Felienne Hermans, George Kampolis, Giel van Lankveld, Greg Wilson, Hay Kranen, Ioannis Cherouvim, Jake Hofman, Jannes Muenchow, Jared Lander, Jay Roaf, Jeffrey Perkel, Jim Hester, Joachim Hagege, Joel Grus, John Cook, John Sandall, Joost Helberg, Joost van Dijk, Joyce Robbins, Julian Hatwell, Karlo Guidoni, Karthik Ram, Lissa Hyacinth, Longhow Lam, Lui Pillmann, Lukas Schmid, Luke Reding, Maarten van Gompel, Martin Braun, Max Schelker, Max Shron, Nathan Furnal, Noah Chase, Oscar Chic, Paige Bailey, Peter Saalbrink, Rich Pauloo, Richard Groot, Rico Huijbers, Rob Doherty, Robbert van Vlijmen, Russell Scudder, Sylvain Lapoix, TJ Lavelle, Tan Long, Thomas Stone, Tim O'Reilly, Vincent Warmerdam, und Yihui Xie.
In diesem Buch und vor allem in den Fußnoten und im Anhang findest du Hunderte von Namen. Diese Namen gehören zu den Autoren der vielen Tools, Bücher und anderen Ressourcen, auf denen dieses Buch basiert. Ich bin ihnen unglaublich dankbar für ihre harte Arbeit, egal ob diese Arbeit vor 50 Jahren oder vor 50 Tagen geleistet wurde.
Vor allem möchte ich meiner Frau Esther, meiner Tochter Florien und meinem Sohn Olivier dafür danken, dass sie mich täglich daran erinnern, worauf es wirklich ankommt. Ich verspreche, dass es noch ein paar Jahre dauern wird, bis ich mit dem Schreiben der dritten Ausgabe beginne.
Danksagungen für die erste Ausgabe (2014)
Zunächst einmal möchte ich Mike Dewar und Mike Loukides dafür danken, dass sie meinen Blogbeitrag "7 Command-Line Tools for Data Science", den ich im September 2013 geschrieben habe, zu einem Buch ausgebaut haben.
Mein besonderer Dank gilt meinen technischen Prüfern Mike Dewar, Brian Eoff und Shane Reustle, die verschiedene Entwürfe gelesen, alle Befehle sorgfältig getestet und wertvolle Rückmeldungen gegeben haben. Ihre Bemühungen haben das Buch erheblich verbessert. Für verbleibende Fehler bin ich selbst verantwortlich.
Ich hatte das Privileg, mit drei großartigen Redakteurinnen zusammenzuarbeiten: Ann Spencer, Julie Steele und Marie Beaugureau. Ich danke euch für eure Anleitung und dafür, dass ihr so gute Verbindungen zu den vielen talentierten Leuten bei O'Reilly habt. Dazu gehören Laura Baldwin, Huguette Barriere, Sophia DeMartini, Yasmina Greco, Rachel James, Ben Lorica, Mike Loukides und Christopher Pappas. Es gibt noch viele andere, die ich nicht kennengelernt habe, weil sie hinter den Kulissen arbeiten. Gemeinsam haben sie dafür gesorgt, dass die Arbeit mit O'Reilly wirklich ein Vergnügen war.
In diesem Buch werden mehr als 80 Kommandozeilen-Tools besprochen. Ohne diese Tools hätte es dieses Buch natürlich gar nicht gegeben. Deshalb bin ich allen Autoren, die diese Tools entwickelt und dazu beigetragen haben, sehr dankbar. Die vollständige Liste der Autoren ist leider zu lang, um sie hier aufzuführen; sie werden imAnhang erwähnt. Mein besonderer Dank gilt Aaron Crow, Jehiah Czebotar, Christoph Groskopf, Dima Kogan, Sergey Lisitsyn, Francisco J. Martin und Ole Tange, die uns mit ihren tollen Kommandozeilen-Tools geholfen haben.
Eric Postma und Jaap van den Herik, die mich während meiner Promotion betreut haben, gebührt besonderer Dank. Im Laufe von fünf Jahren habe ich viel von ihnen gelernt. Obwohl das Schreiben eines Fachbuchs etwas ganz anderes ist als das Schreiben einer Doktorarbeit, haben sich viele dieser Lektionen auch in den letzten neun Monaten als sehr hilfreich erwiesen.
Abschließend möchte ich mich bei meinen Kollegen bei YPlan, meinen Freunden, meiner Familie und vor allem bei meiner Frau Esther bedanken, die mich unterstützt und mich in den richtigen Momenten von der Kommandozeile weggeholt hat.
Get Datenwissenschaft an der Kommandozeile, 2. now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.