Primeros pasos en ciencias de datos con Anaconda

Anaconda Python download

Tal como lo expresa su sitio web oficial, Anaconda Distribution ofrece una forma sencilla de trabajar en ciencia de datos y aprendizaje automático con los lenguajes de programación Python y R en una única computadora. Puedes descargar e instalar el lenguaje de programación Python para sistemas operativos Windows, MacOS o Linux e iniciar inmediatamente tu carrera trabajando en ciencia de datos.

Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.
Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.

¿Qué es Anaconda Python y para qué sirve?

Para decirlo en forma resumida, Anaconda es una distribución y un gestor de paquetes completo, curado, de alta calidad y alto rendimiento para software de código abierto como Python, R y sus muchos paquetes asociados. Ideal para data scientists. Impulsado por la empresa Continuum Analytics (Anaconda Inc.), Anaconda Distribution está pensada para ser utilizada principalmente por científicos de datos. Está disponible para Linux, Windows y MacOS.

Con la ayuda de entornos Conda dedicados, es posible ofrecer amplias colecciones de herramientas R y Python. La gestión de versiones y dependencias de Conda asegura que en un entorno, los componentes individuales sean compatibles, es decir, que no existan conflictos entre ellos. Además, para los usuarios, es fácil instalar sus propios conjuntos de herramientas especializadas en entornos privados.

Conda: el brazo ejecutor de Anaconda

Conda es un sistema de gestión de paquetes y de entorno de código abierto que funciona en sistemas operativos Windows, macOS y Linux. Conda instala, ejecuta y actualiza rápidamente los paquetes y sus dependencias. Además, permite crear, guardar, cargar entornos de trabajo en un equipo local, y switchear fácilmente entre ellos. Conda está pensado principalmente para programas Python, pero sirve para empaquetar y distribuir software desarrollado en cualquier lenguaje.

Conda es capaz de administrar paquetes y dependencias de cualquier lenguaje utilizado para ciencia de datos: Python, R, Fortran, Scala, Java, entre otros.
Conda es capaz de administrar paquetes y dependencias de cualquier lenguaje utilizado para ciencia de datos: Python, R, Fortran, Scala, Java, entre otros.

En su configuración por defecto, Conda puede instalar y gestionar los más de 7.500 packages en repo.anaconda.com que son construidos, revisados y mantenidos por Anaconda. También puede operar con sistemas de integración continua tales como Travis CI y AppVeyor, con la finalidad de proporcionar pruebas frecuentes y automatizadas de las aplicaciones desarrolladas en Python, R u otros lenguajes.

Conda se incluye en todas las distribuciones Anaconda, Miniconda y Anaconda Repository. También se incluye en Anaconda Enterprise, que proporciona una gestión de packages y entornos empresariales in situ para Python, R, Node.js, Java, entre otros comúnmente empleados por data scientists.

¿Qué es un entorno Conda?

Un entorno Conda es un directorio que contiene una colección específica de packages Conda que has instalado. Por ejemplo, puedes tener un entorno con NumPy 1.7 y sus dependencias Python, y otro entorno con NumPy 1.6 para pruebas de programas Python que requieran versiones anteriores de las librerías.

Si cambias algo en uno de tus entornos Conda, los demás no se verán afectados. Para moverte entre distintos entornos los puedes activar o desactivar fácilmente. También puedes compartir tu entorno con alguien dándole una copia de tu archivo environment.yaml.

Estructura de directorios de los entornos Conda

Un entorno Conda cuenta con un directorio raíz (root) que es el directorio en el que se encuentra Anaconda o Miniconda. En máquina Windows puede ser C:\Anaconda y en Linux, /opt/Anaconda.

Después hay otros directorios notables, como /pkgs (también llamado PKGS_DIR), que contiene packages descomprimidos, listos para ser enlazados en entornos conda. Cada paquete reside en un subdirectorio correspondiente a su nombre canónico.

Otro directorio notable es /envs, la ubicación del sistema donde se crean entornos Conda adicionales. Además de los mencionados, los siguientes subdirectorios componen el entorno por defecto de Anaconda:

  • /bin
  • /include
  • /lib
  • /share

Otros entornos Conda suelen contener los mismos subdirectorios que el entorno por defecto.

Instalando Python y Anaconda en Windows

La instalación de Anaconda Distribution es muy sencilla: sólo debes descargar el instalador de la distribución y ejecutarlo como cualquier Python download con instalador de aplicaciones Windows.

Instalación de Anaconda en Windows: selección de la carpeta de destino para la instalación.
Instalación de Anaconda en Windows: selección de la carpeta de destino para la instalación.

Los pasos del instalador son los habituales: aceptar el contrato de licencia, seleccionar una carpeta para los archivos, etc. Hay un par de pasos a los que hay que prestar especial atención:

  • Agregar el path de Anaconda a la variable de entorno PATH: esta opción es innecesaria si usarás Anaconda Navigator o Anaconda Prompt desde el menú Inicio, por lo que no se recomienda seleccionarla.
  • Registrar Anaconda como tu Python predeterminado: a menos que planees instalar y utilizar distintas variantes de Anaconda o de Python, deja esta opción seleccionada.
  • Instalar DataSpell: DataSpell es un nuevo IDE de JetBrains diseñado específicamente para realizar análisis exploratorio de datos con PYthon u otros lenguajes y crear prototipos de modelos ML (machine learning).

Primeros pasos con Anaconda Navigator

Una vez concluido el proceso de instalación, busca Anaconda Navigator en el menú de inicio de Windows 10. Anaconda Navigator es la interfaz gráfica (GUI) de escritorio incluida en la Anaconda Distribution que te permitirá lanzar aplicaciones y gestionar fácilmente los paquetes, entornos y canales Conda sin necesidad de recurrir a la línea de comandos. Navigator puede buscar paquetes en Anaconda.org o en un repositorio local de Anaconda.

Ventana principal de Anaconda Navigator.
Ventana principal de Anaconda Navigator.

Muchos paquetes científicos dependen de versiones específicas de otros paquetes. Los científicos de datos suelen utilizar distintas variantes de muchos paquetes y utilizan varios entornos para separar estas diferentes versiones. Anaconda Navigator facilita la administración de paquetes y entornos con una interfaz intuitiva, de apuntar y hacer clic. Con Navigator es sencillo buscar paquetes, instalarlos en un entorno, ejecutarlos y actualizarlos.

Las siguientes aplicaciones están disponibles en Navigator en forma predeterminada:

Los usuarios avanzados de Conda pueden también contruir sus propias aplicaciones para Anaconda Navigator.

Cómo ejecutar código con Navigator

La manera más simple de ejecutar código con Anaconda Navigator es utilizar Spyder. Desde la solapa principal de Navigator, selecciona la opción Spyder para escribir y ejecutar el código. De la misma forma puedes usar Jupyter Notebooks, si prefieres. La ventaja de Jupyter Notebooks (y la razón de su creciente popularidad) es que sus blocs de notas combinan la funcionalidad de un IDE, con el que puedes escribir y ejecutar código, con un la funcionalidad de un sistema de documentación en donde puedes ingresar textos, imágenes e interfaces interactivas. Los blocs de Jupyter pueden editarse, visualizarse y utilizarse en un navegador web.

Navigator usa Conda para crear entornos separados que contienen archivos, paquetes y sus dependencias. Para crear un nuevo entorno llamado snowflakes e instalar un paquete en él, sigue estas instrucciones:

  1. En Navigator, haz clic en la pestaña Environments y luego en el botón Create. Aparecerá el cuadro de diálogo Create new environment. En el campo Name escribe un nombre descriptivo para el nuevo entorno (ejemplo: snowflakes).
  2. Haz clic en Create. Navigator creará el nuevo entorno y lo activará. Ahora contarás con dos entornos: el entorno base (root) y snowflakes. Puedes alternar entre ellos activando uno y desactivando el otro simplemente cliqueando el nombre del entorno que quieras usar.

Usando Anaconda Prompt

Luego de completar la instalación de Anaconda distribution, puedes ir al menú Inicio de Windows y seleccionar Anaconda Prompt para trabajar directamente con la línea de comandos, ya que una vez que la dominas te puede resultar mucho más rápida y práctica que Navigator.

Veamos algunos comandos básicos de Anaconda Prompt:

  • Para verificar que Conda esté instalado y averiguar su número de versión:>>conda info
  • Para actualizar Conda a la versión más reciente:>>conda update -n base conda
  • Para actualizar todos los paquetes a la versión más reciente de Anaconda Distribution (instala versiones estables y compatibles, lo que significa que quizás no sean las últimas):>>conda update anaconda
  • Crear un nuevo entorno con una versión específica de Python y de los paquetes (reemplazar ENTNOMBRE por el nombre del entorno y PAQ1 y PAQ2 por los nombres de los paquetes):>>conda create – name ENTNOMBRE python=3.6 “PAQ1>7.6” PAQ2
  • Activar un entorno Conda (reemplazar ENTNOMBRE por el nombre del entorno a activar):>>conda activate ENTNOMBRE
  • Desactivar el entorno actual:>>conda deactivate
  • Listar todos los paquetes y versiones en un entorno (reemplazar ENTNOMBRE por el nombre del entorno a listar):>>conda list — name ENTNOMBRE
  • Eliminar un entorno completo (reemplazar ENTNOMBRE por el nombre del entorno a eliminar):>>conda remove — name ENTNOMBRE — all Sharing Environments

Anaconda Nucleus

Anaconda Nucleus es una comunidad para adquirir y compartir conocimientos sobre Anaconda, programación Python y ciencias de datos. Los miembros de esta comunidad pueden acceder a información de expertos a través de recorridos guiados, videos, seminarios web y contenido de socios.

A través de Anaconda Nucleus también puedes participar en la experiencia siempre activa de AnacondaCON, un evento on-demand con el que puedes ponerte al día en cualquier momento con las sesiones a las que no hayas podido asistir en directo. En AnacondaCON se agregan sesiones cada mes, como por ejemplo: Introducción a las GPU en Python, Cómo involucrarse en Open Source, entre otras.

Además de ser un centro de aprendizaje, Anaconda Nucleus es un lugar que fomenta la conexión. Se convertirá en un lugar en el que los profesionales puedan acudir para obtener información fiable y de confianza con el fin de dominar sus herramientas e intercambiar descubrimientos y aprendizajes con los demás.

Primeros pasos con contenedores Docker

Contenedores Docker

La función principal de la plataforma de contenedores de código abierto Docker está explícita en su eslógan: «Build, Ship and Run Any App, Anywhere», lo que significa «construye, distribuye y ejecuta cualquier app en cualquier parte». Concretamente, lo que propone Docker es simplificar las tareas de armar entornos de desarrollo o de prueba que emulen las condiciones de ejecución de una aplicación.

Qué son los contenedores en Docker

El concepto de contenedor en Docker reemplaza al concepto de máquina virtual, ofreciendo una alternativa más fácil de manejar para el desarrollo y testeo de aplicaciones. La principal diferencia entre una máquina virtual y un contenedor Docker es que la máquina virtual contiene todos los elementos que componen una máquina real: sistema operativo completo, BIOS, memoria, disco y demás recursos de hardware virtualizado.

A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.
A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.

En cambio, un contenedor Docker es un entorno de ejecuión que empaqueta el código y todas sus dependencias para correr aplicaciones de manera confiable, independientemente del hardware o del sistema operativo en donde se lleva a cabo la ejecución real. Los contenedores Docker son paquetes de software livianos, independientes y ejecutables que incluyen todo lo que puede necesitar una aplicación para ejecutar: código, runtimes, herramientas del sistema, bibliotecas del sistema y configuraciones.

Leer más

8 Plataformas no-code para crear apps sin saber programar

Con las plataformas no-code, la programación tradicional sería prehistoria.

Las mejores herramientas para crear software sin escribir código en 2022

Hoy en día todo se hace con apps (o lo que antaño se conocía como «aplicaciones»), ya sea pedir una pizza, averiguar cómo llegar a algún sitio, hacer una transacción bancaria, aprender a tocar un instrumento, entre infinidad de cosas más. A veces se nos ocurre una idea para una app y nos gustaría saber cómo construirla, pero nos detiene el hecho de no saber programar. Buenas noticias: con las plataformas no-code, ya no es necesario saber programar para crear aplicaciones.

¿Qué son las plataformas no-code?

Las plataformas no-code son aplicaciones con cierto grado de inteligencia que facilitan la interpretación de nuestras necesidades o las de los usuarios, con la finalidad de implementarlas y crear software sin saber programar.

Programar bailando, como Hugh Jackman en "Swordfish". Las plataformas no-code hacen que desarrollar software sea fácil, pero no tanto...
¿Programar bailando, como Hugh Jackman en la película «Swordfish»? Las plataformas no-code hacen que desarrollar software sea fácil, pero no tanto…

¿Es posible crear apps sin programar gratis, crear aplicacion sin programar, crear app sin codigo, crear una app gratis sin saber programar o realizar diseño web sin codigo? La respuesta a todas esas preguntas es un rotundo «sí». Pero aunque no haya que escribir código, igual hay que trabajar en otras tareas del desarrollo, como el diseño de bases de datos o el diseño de interfaces de usuario. Y algo muy importante: hay que dominar bien la parte de interpretación de necesidades. Hasta ahora no existe una herramienta a la que le podamos explicar con palabras lo que queremos lograr y, en base a nuestras especificaciones, cree una app que las implemente.

Las plataformas no-code utilizan distintos medios para que les «expliquemos» nuestras necesidades. Por ejemplo, un diseño de base de datos, un diagrama de flujo o un diseño de pantalla.

No tan buenas noticias: para crear aplicaciones web o móviles con plataformas no-code no hace falta saber programar, pero sí es necesario saber diseñar software, ya sea a través del diseño de bases de datos, diseño de flujos de trabajo o diseño de interfaces/experiencia de usuario.

Leer más

13 de septiembre, día del programador 2021

13 de septiembre día del programador

El día 256° del año, en este 2021 cae el lunes 13 de septiembre día del programador.

Como los años normales no son bisiestos, a diferencia del año pasado que fue el 12 de septiembre, el día 256° del año cae el 13 de septiembre.

Calendario Septiembre 13 2021, día del programador.

¿Cuándo y por qué se celebra el Día del Programador en septiembre?

Corría el mes de septiembre de 2009. El presidente ruso de aquel entonces, llamado Dmitri Medvédev, firmó un decreto mediante el cual establecía oficialmente el día 256° del año como la celebración del día del programador. Se estableció que sería el día número 256 de cada año, que en este 2021 (y en todos los años no bisiestos) cae el 13 de septiembre día del programador.

Leer más

Los 7 mejores IDEs para Python

mejores IDEs para Python

Para trabajar cómodamente con Python, es fundamental elegir el mejor IDE (integrated development environment, o entorno integrado de desarrollo).

Python es más que el lenguaje de programación de moda. A lo largo de sus más de 30 años de vida ha demostrado que es simple, práctico y eficiente para toda clase de desarrollo de software. Pero en los últimos años se ha vuelto el lenguaje de preferencia para ciencia de datos (data science) y aprendizaje de máquina (machine learning), por lo que su conocimiento se ha convertido en un talento muy codiciado por quienes buscan programadores. El dominio del lenguaje Python es imprescindible para el trabajo de los científicos de datos. Los mejores IDEs para Python son los que hacen más fácil la tarea a los programadores Python.

Cualquiera que desee incursionar en la programación Python debe, en principio, elegir con qué entorno de desarrollo, o sea, con qué IDE trabajará. Es por eso que, a continuación, analizamos las mejores opciones, según las opiniones de la comunidad de programadores de este lenguaje.

Si buscas aprender a programar en el lenguaje más popular de la actualidad, te recomiendo leer sobre los mejores libros en español para aprender Python.

Características deseables en un IDE

Sin importar que sea para Python o para cualquier otro lenguaje, hay ciertas características que los programadores esperamos encontrar en todo IDE, para poder trabajar con comodidad y eficiencia en el desarrollo de software. La principal es tener todas las herramientas al alcance de la mano: edición de código, depuración, ejecución y control de versiones. Todo esto integrado en una única interfaz de usuario.

Los mejores IDEs para Python tienen todas las herramientas a un clic de distancia.
Un IDE completo para Python, con todas las herramientas al alcance de la mano.

En segundo término, es conveniente que el IDE para Python permita acceder directamente a herramientas externas que el propio IDE no ofrezca, como podrían ser analizadores de código o utilidades para hacer deployment en la nube. Y de ser posible, que sea un software libre de costo.

Leer más