Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
La ciencia de datos es un campo apasionante en el que trabajar. También es todavía relativamente joven. Desgraciadamente, muchas personas, y también muchas empresas, creen que se necesita una nueva tecnología para abordar los problemas que plantea la ciencia de datos. Sin embargo, como demuestra este libro, muchas cosas pueden conseguirse utilizando en su lugar la línea de comandos, y a veces de forma mucho más eficiente.
Durante mi programa de doctorado, pasé gradualmente de utilizar Microsoft Windows a Linux. Como esta transición me daba un poco de miedo al principio, empecé por tener ambos sistemas operativos instalados uno al lado del otro (lo que se conoce como arranque dual). La necesidad de ir y venir entre Microsoft Windows y Linux se desvaneció con el tiempo, y en algún momento incluso estuve trasteando con Arch Linux, que te permite crear tu propia máquina Linux personalizada desde cero. Todo lo que se te da es la línea de comandos, y tú decides qué hacer con ella. Por necesidad, pronto me sentí muy cómodo utilizando la línea de comandos. Con el tiempo, a medida que el tiempo libre se volvió más valioso, me establecí con una distribución de Linux conocida como Ubuntu por su facilidad de uso y su gran comunidad. Sin embargo, la línea de comandos sigue siendo donde paso la mayor parte de mi tiempo.
En realidad, no hace mucho que me di cuenta de que la línea de comandos no sólo sirve para instalar software, configurar sistemas y buscar archivos. Empecé a aprender sobre herramientas como cut
, sort
y sed
. Son ejemplos de herramientas de línea de comandos que toman datos como entrada, le hacen algo e imprimen el resultado. Ubuntu viene con bastantes de ellas. En cuanto comprendí el potencial de combinar estas pequeñas herramientas, me quedé enganchado.
Después de obtener mi doctorado, cuando me convertí en científico de datos, quise utilizar este enfoque para hacer ciencia de datos en la medida de lo posible. Gracias a un par de nuevas herramientas de línea de comandos de código abierto, como xml2json
, jq
y json2csv
, pude incluso utilizar la línea de comandos para tareas como el raspado de sitios web y el procesamiento de montones de datos JSON.
En septiembre de 2013, decidí escribir una entrada de blog titulada "7 herramientas de línea de comandos para la ciencia de datos". Para mi sorpresa, la entrada de blog recibió bastante atención, y recibí muchas sugerencias de otras herramientas de línea de comandos. Empecé a preguntarme si la entrada de blog podría convertirse en un libro. Me alegré de que, unos 10 meses después, y con la ayuda de muchas personas con talento (ver los agradecimientos), la respuesta fuera afirmativa.
Comparto esta historia personal no tanto porque crea que debes saber cómo surgió este libro, sino porque quiero que sepas que yo también tuve que aprender sobre la línea de comandos. Dado que la línea de comandos es tan diferente del uso de una interfaz gráfica de usuario, al principio puede parecer aterradora, pero si yo pude aprenderla, tú también puedes. Independientemente de cuál sea tu sistema operativo actual y de cómo trabajes actualmente con los datos, después de leer este libro serás capaz de hacer ciencia de datos en la línea de comandos. Si ya estás familiarizado con la línea de comandos, o incluso si ya sueñas con los scripts de shell, lo más probable es que aún descubras algunos trucos interesantes o herramientas de la línea de comandos que podrás utilizar en tu próximo proyecto de ciencia de datos.
Qué esperar de este libro
En este libro, vamos a obtener, depurar, explorar y modelar datos, muchos de ellos. Este libro no trata tanto de cómo mejorar en esas tareas de ciencia de datos. Ya existen grandes recursos disponibles que tratan, por ejemplo, cuándo aplicar qué prueba estadística o cuál es la mejor forma de visualizar los datos. En cambio, este libro práctico pretende hacerte más eficiente y productivo enseñándote a realizar esas tareas de ciencia de datos en la línea de comandos.
Aunque en este libro se tratan más de 90 herramientas de línea de comandos, lo más importante no son las herramientas en sí. Algunas herramientas de línea de comandos existen desde hace mucho tiempo, mientras que otras serán sustituidas por otras mejores. Se están creando nuevas herramientas de línea de comandos incluso mientras estás leyendo esto. A lo largo de los años, he descubierto muchas herramientas de línea de comandos asombrosas. Lamentablemente, algunas de ellas se descubrieron demasiado tarde para incluirlas en el libro. En resumen, las herramientas de línea de comandos van y vienen, pero no pasa nada.
Lo más importante es la idea subyacente de trabajar con herramientas, tuberías y datos. La mayoría de las herramientas de línea de comandos hacen una cosa y la hacen bien. Esto forma parte de la filosofía Unix, que hace varias apariciones a lo largo del libro. Una vez que te hayas familiarizado con la línea de comandos, sepas combinar herramientas de línea de comandos e incluso puedas crear otras nuevas, habrás desarrollado una habilidad de valor incalculable.
Cambios para la Segunda Edición
Aunque la línea de comandos como tecnología y como forma de trabajar es intemporal, algunas de las herramientas tratadas en la primera edición han sido sustituidas por herramientas más nuevas (por ejemplo, csvkit
ha sido reemplazado en gran medida por xsv
) o abandonadas por sus desarrolladores (por ejemplo, drake
), o han sido elecciones subóptimas (por ejemplo, ), weka
). He aprendido mucho desde que se publicó la primera edición en octubre de 2014, ya sea a través de mi propia experiencia o como resultado de los útiles comentarios de mis lectores. Aunque el libro es bastante especializado porque se encuentra en la intersección de dos temas, sigue habiendo un interés constante por parte de la comunidad de la ciencia de datos, como demuestran los numerosos mensajes positivos que recibo casi todos los días. Al actualizar la primera edición, espero mantener la relevancia del libro durante al menos otros cinco años. He aquí una lista no exhaustiva de los cambios que he realizado:
-
He sustituido
csvkit
porxsv
en la medida de lo posible.xsv
es una alternativa más rápida para trabajar con archivos CSV. -
En los Capítulos 2 y 3, sustituí la imagen VirtualBox por una imagen Docker. Docker es una forma más rápida y ligera de ejecutar un entorno aislado.
-
Ahora utilizo
pup
en lugar descrape
para trabajar con HTML.scrape
es una herramienta Python creada por mí.pup
es mucho más rápida, tiene más funciones y es más fácil de instalar. -
El capítulo 6 se ha reescrito desde cero. En lugar de
drake
, ahora utilizomake
para la gestión de proyectos.drake
ya no se mantiene, ymake
es mucho más maduro y muy popular entre los desarrolladores. -
He sustituido
Rio
porrush
.Rio
es un torpe script de Bash que he creado yo mismo.rush
es un paquete de R que constituye una forma mucho más estable y flexible de utilizar R desde la línea de comandos. -
En el Capítulo 9 sustituí Weka y BigML por Vowpal Wabbit (
vw
). Weka es antiguo, y la forma de utilizarlo desde la línea de comandos es tosca. BigML es una API comercial en la que ya no quiero confiar. Vowpal Wabbit es una herramienta de aprendizaje automático muy madura que se desarrolló en Yahoo! y ahora está en Microsoft. -
El capítulo 10 es un capítulo totalmente nuevo sobre la integración de la línea de comandos en los flujos de trabajo existentes, incluidos Python, R y Apache Spark. En la primera edición mencioné que la línea de comandos puede integrarse fácilmente en los flujos de trabajo existentes, pero nunca profundicé en el tema. Este capítulo lo soluciona.
Cómo leer este libro
En general, te aconsejo que leas este libro de forma lineal. Una vez introducido un concepto o una herramienta de línea de comandos, lo más probable es que la emplee en un capítulo posterior. Por ejemplo, en el capítulo 9, hago un uso intensivo de parallel
, que se trata ampliamente en el capítulo 8.
La ciencia de datos es un campo muy amplio en el que se entrecruzan muchos otros campos, como la programación, la visualización de datos y el aprendizaje automático. Como resultado, este libro toca muchos temas interesantes que, lamentablemente, no se pueden tratar en profundidad. Al final de cada capítulo, proporciono sugerencias para seguir explorando. No es necesario que leas este material para seguir el libro, pero si te interesa, debes saber que hay mucho más que aprender.
A quién va dirigido este libro
Este libro sólo asume una cosa de ti: que trabajas con datos. No importa qué lenguaje de programación o entorno de cálculo estadístico utilices actualmente. El libro explica todos los conceptos necesarios desde el principio.
Tampoco importa si tu sistema operativo es Microsoft Windows, macOS o algún tipo de Linux. El libro viene con una imagen Docker, que es un entorno virtual fácil de instalar. Te permite ejecutar las herramientas de línea de comandos y seguir los ejemplos de código en el mismo entorno en el que se escribió este libro. No tienes que perder el tiempo averiguando cómo instalar todas las herramientas de línea de comandos y sus dependencias.
El libro contiene algo de código en Bash, Python y R, por lo que es útil si tienes algo de experiencia en programación, pero no es en absoluto necesario para seguir los ejemplos.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, nombres de directorio y nombres de archivo.
Constant width
-
Se utiliza para el código y los comandos, así como dentro de los párrafos para referirse a las herramientas de línea de comandos y sus opciones.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a ella en https://oreil.ly/data-science-at-cl.
Envía un correo electrónico a bookquestions@oreilly.com para hacer comentarios o preguntas técnicas sobre este libro. El autor también mantiene una versión del libro en línea.
Para obtener noticias e información sobre nuestros libros y cursos, visita http://oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://youtube.com/oreillymedia
Agradecimientos por la Segunda Edición (2021)
Han pasado siete años desde que salió la primera edición. Durante este tiempo, y especialmente durante los últimos 13 meses, me han ayudado muchas personas, sin las cuales nunca habría podido escribir una segunda edición.
Una vez más, he tenido la suerte de contar con tres maravillosas editoras en O'Reilly. Me gustaría dar las gracias a Sarah "Abraza la fecha límite" Grey, Jess "Pedalea hasta el metal" Haberman, y Kate "Déjate llevar" Galloway. Sus segundos nombres lo dicen todo. Con su increíble ayuda, pude aceptar los plazos, pisar el acelerador cuando era necesario y, finalmente, dejarlo correr. También me gustaría dar las gracias a sus colegas 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 y Yasmina Greco, por hacer que la colaboración con O'Reilly fuera un placer.
A pesar de contar con un proceso automatizado para ejecutar el código y pegar de nuevo los resultados (gracias a R Markdown y Docker), el número de errores que he podido cometer es impresionante. Gracias Aaditya Maruthi, Brian Eoff, Caitlin Hudon, Julia Silge Mike Dewar y Shane Reustle por reducir enormemente este número. Por supuesto, cualquier error que quede es responsabilidad mía.
Marc Canaleta se merece un agradecimiento especial. En octubre de 2014, poco después de que saliera la primera edición, Marc me invitó a impartir un taller de un día sobre Ciencia de Datos en la Línea de Comandos a su equipo en Social Point, en Barcelona. Poco sabíamos los dos que después vendrían muchos talleres, lo que finalmente me llevó a crear mi propia empresa: Talleres de Ciencia de Datos: Talleres de Ciencia de Datos. Cada vez que enseño, aprendo algo nuevo. Probablemente no lo sepan, pero cada alumno ha tenido un impacto, de una forma u otra, en este libro. A ellos les digo: gracias. Espero poder enseñar durante mucho tiempo.
Conversaciones cautivadoras, espléndidas sugerencias y apasionados pull requests. Agradezco enormemente todas y cada una de las contribuciones de las siguientes personas generosas: 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 y Yihui Xie.
A lo largo de este libro, y especialmente en las notas a pie de página y en el apéndice, encontrarás cientos de nombres. Estos nombres pertenecen a los autores de las muchas herramientas, libros y otros recursos en los que se basa este libro. Estoy increíblemente agradecido por su duro trabajo, independientemente de si ese trabajo se realizó hace 50 años o hace 50 días.
Sobre todo, quiero dar las gracias a mi mujer Esther, a mi hija Florien y a mi hijo Olivier por recordarme a diario lo que de verdad importa. Prometo que pasarán unos años antes de que empiece a escribir la tercera edición.
Agradecimientos por la primera edición (2014)
En primer lugar, me gustaría dar las gracias a Mike Dewar y Mike Loukides por creer que la entrada de mi blog, "7 herramientas de línea de comandos para la ciencia de datos", que escribí en septiembre de 2013, podría ampliarse y convertirse en un libro.
Un agradecimiento especial a mis revisores técnicos Mike Dewar, Brian Eoff y Shane Reustle por leer varios borradores, probar meticulosamente todos los comandos y aportar comentarios inestimables. Vuestros esfuerzos han mejorado enormemente el libro. Cualquier error restante es enteramente responsabilidad mía.
Tuve el privilegio de trabajar con tres editoras increíbles: Ann Spencer, Julie Steele y Marie Beaugureau: Ann Spencer, Julie Steele y Marie Beaugureau. Gracias por su orientación y por ser tan buenos enlaces con las muchas personas con talento de O'Reilly. Entre esas personas están Laura Baldwin, Huguette Barriere, Sophia DeMartini, Yasmina Greco, Rachel James, Ben Lorica, Mike Loukides y Christopher Pappas. Hay muchas otras a las que no he conocido porque trabajan entre bastidores. Juntas se han asegurado de que trabajar con O'Reilly haya sido un verdadero placer.
En este libro se tratan más de 80 herramientas de línea de comandos. Huelga decir que, sin estas herramientas, este libro no habría existido en primer lugar. Por ello, estoy sumamente agradecido a todos los autores que crearon y contribuyeron a estas herramientas. Lamentablemente, la lista completa de autores es demasiado larga para incluirla aquí; se mencionan en elApéndice. Gracias especialmente a Aaron Crow, Jehiah Czebotar, Christoph Groskopf, Dima Kogan, Sergey Lisitsyn, Francisco J. Martin y Ole Tange por ayudarnos con sus increíbles herramientas de línea de comandos.
Eric Postma y Jaap van den Herik, que me supervisaron durante mi programa de doctorado, merecen un agradecimiento especial. A lo largo de cinco años me enseñaron muchas lecciones. Aunque escribir un libro técnico es muy distinto de escribir una tesis doctoral, muchas de esas lecciones resultaron muy útiles también en los últimos nueve meses.
Por último, me gustaría dar las gracias a mis colegas de YPlan, a mis amigos, a mi familia y, especialmente, a mi mujer, Esther, por apoyarme y apartarme de la línea de comandos en los momentos adecuados.
Get Ciencia de datos en la línea de comandos, 2ª edición 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.