viernes, 16 de noviembre de 2018

Instalando Python 3, Miniconda y Jupyter en Ubuntu para Ciencia de Datos

Anaconda es una distro que proporciona un instalador y gestión de paquetes para PyDataScience y, aunque es gratuito, incluye código binario precompilado (no es completamente open source). Vamos a ver qué nos ofrece.

Instalación

Vamos a instalar una versión "minified" de Anaconda: Miniconda. Para ello, bajamos el .sh desde este link, versión 3.
Cambiamos los permisos:
sudo chmod +x ./Miniconda3-latest-Linux-x86_64.sh 
Lo corremos:
./Miniconda3-latest-Linux-x86_64.sh 
El instalador nos pregunta si queremos incluir el path. Le decimos que si. Cerramos la terminal, abrimos otra y probamos si funciona: 
conda list
Verificamos tener la última versión instalada: 
conda update conda
También vamos a instalar una IDE: 
conda install jupyter

Ejemplo de uso

En primer lugar, vamos a levantar el server de nuestra IDE con el siguiente comando:
jupyter notebook
Una vez abierto el entorno, hacemos click en el combo (en la esquina superior derecha) "Nuevo > Python3" y se nos abre un nuevo entorno con el archivo. Le damos un nombre.

En la primera línea de nuestro archivo, importamos pandas:
import pandas
Le damos click en "run" y nos advierte que no tenemos el paquete. Entonces vamos a una terminal y ejecutamos:
conda install pandas matplotlib
Si, tenemos instalado pip pero lo recomendable es intentar primero con "conda install packane_name". Si no lo encuentra, recién ahí usar pip.

Ahora volvemos a Jupyter, hacemos click en la línea que escribimos y le damos "run" de nuevo. Esta vez deebría pasar .

Creamos un archivo llamado "demo-data.csv" con este contenido: 

Nationality,Age,Height,Study-Level,Exam-Rank
Italian,21,1.56,High school,6
French,23,1.88,Degree,3
Spanish,37,1.92,Postdegree,8
Italian,23,1.23,High school,10
French,45,1.56,Degree,3
Spanish,54,1.88,Postdegree,6
Italian,25,1.92,Degree,7
French,42,1.23,Degree,9
Spanish,24,1.56,High school,2
Italian,26,1.88,Degree,8
French,26,1.92,Postdegree,7
Spanish,36,1.23,High school,5
Spanish,28,1.55,Degree,4

 Y, de nuevo desde jupyter, escribimos estas líneas, una por cuadradito:
import pandas
myData = pandas.read_csv("/home/gabi/dev/miniconda3_docs/demo-data.csv")
print(myData.columns)
print(myData.shape)
import matplotlib.pyplot as plot
plot.hist(myData["Age"])
myData.corr('pearson')['Exam-Rank']
myData.corr('spearman')['Exam-Rank']

A jugar!