{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"AeroPython\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# NumPy: Entrada/Salida" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Con E/S (I/O en inglés) entendemos leer y escribir datos archivos. Es algo que necesitaremos hacer con relativa frecuencia, y en NumPy es muy sencillo de hacer. Para el caso de la **lectura** se usa la función `np.loadtxt`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ejemplo datos calidad del aire " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import HTML\n", "HTML('')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import HTML\n", "HTML('')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# aeropython: preserve\n", "# Linux command \n", "#!head ../data/barrio_del_pilar-20160322.csv\n", "\n", "# Windows\n", "!type ..\\data\\barrio_del_pilar-20160322.csv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Primero, importamos las librerías que vamos a usar: Numpy y Matplotlib. También usaremos `plt.ion()` para activar el modo interactivo de matplotlib." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "plt.ion()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cargando los datos\n", "\n", "Usaremos la función `loadtxt` para cargar los datos en un array. Usaremos los argumentos opcionales `skiprows`, `delimiter` y `usecols` para captar los datos que queremos." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([[ 0.2, 14. , 73. ],\n", " [ 0.2, 10. , 77. ],\n", " [ 0.2, 9. , 75. ],\n", " [ 0.2, 3. , 81. ],\n", " [ 0.2, 3. , 81. ],\n", " [ 0.2, 6. , 79. ],\n", " [ 0.2, 24. , 59. ],\n", " [ 0.3, 48. , 37. ],\n", " [ 0.3, 40. , 43. ],\n", " [ 0.3, 41. , 44. ]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# loading the data:\n", "# ./data/barrio_del_pilar-20160322.csv\n", "data1 = np.loadtxt('../data/barrio_del_pilar-20160322.csv', skiprows=3, delimiter=';', usecols=(2,3,4))\n", "data1[:10,:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Valores inexistentes\n", "\n", "El archivo que contiene los datos de 2015 tiene algunos agujeros por errores de medida. Como alternativa a `loadtxt`, podremos usar la función `genfromtxt`, teniendo cuidado de que el ella el argumento opcional de saltar líneas pasa a llamarse `skip_header`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0.5, 65. , 7. ],\n", " [ 0.4, 50. , 7. ],\n", " [ 0.3, 37. , 11. ],\n", " [ 0.3, 37. , 10. ],\n", " [ 0.3, 29. , 17. ],\n", " [ 0.3, 36. , 13. ],\n", " [ 0.3, 47. , 7. ],\n", " [ 0.4, 57. , 6. ],\n", " [ 0.5, 67. , 6. ],\n", " [ 0.5, 69. , 8. ]])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Loading the data 2:\n", "#../data/barrio_del_pilar-20151222.csv\n", "data2 = np.genfromtxt('../data/barrio_del_pilar-20151222.csv', skip_header=3, delimiter=';', usecols=(2,3,4))\n", "data2[:10,:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos comprobar como afecta la existencia de estos valores a algunas funciones de Numpy, como `np.mean`. A veces es posible esquivar estos problemas con otras funciones como `np.nanmean`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([nan, nan, nan])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.mean(data2, axis=0)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([ 0.64179894, 67.57671958, 17.3 ])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.nanmean(data2, axis=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Probemos a calcular la diferencia entre ambos años:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ -0.3, -51. , 66. ],\n", " [ -0.2, -40. , 70. ],\n", " [ -0.1, -28. , 64. ],\n", " [ -0.1, -34. , 71. ],\n", " [ -0.1, -26. , 64. ],\n", " [ -0.1, -30. , 66. ],\n", " [ -0.1, -23. , 52. ],\n", " [ -0.1, -9. , 31. ],\n", " [ -0.2, -27. , 37. ],\n", " [ -0.2, -28. , 36. ]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_dif = data1 - data2\n", "data_dif[:10,:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Guardar los datos nuevos\n", "\n", "Supongamos que ahora queremos guardar nuestra tabla de datos en un archivo txt, para poder cargarlo ya modificado más adelante. Una manera fácil de hacerlo sería con otra función de NumPy: `np.savetxt`. Lo usaremos con los argumentos opcionales `fmt='%9.3f', newline = '\\r\\n'` para obtener un fichero bonito que podamos entender de un vistazo." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "np.savetxt('diferencia_interanual.txt', data_dif, fmt='%9.3f', newline = '\\r\\n')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pintando los datos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Valores máximos ** obtenidos de: http://www.mambiente.munimadrid.es/opencms/export/sites/default/calaire/Anexos/valores_limite_1.pdf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* NO2\n", " - Media anual: 40 µg/m3\n", " - **Media horaria: 200 µg/m3 **" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0, 220)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nf/gD99xzT/jYh6f38tVFMGSrp7blWB5o+RYPfPzfEsa3atUqKioqknz2JC++3wGjPZafvfLycp55\n5hmA8Gfvd6e+w7rAXHCE+NK1V/Ifd6gxfeO7P2TXa3+LuX9bWxu/+c1vALjxxhtZvz62z8DChQtp\n/fC/U1vuZP2uLhpC73DV8uWE7CW0hgJ89ct/S/jsRWP12TO/S/nkiInouzwlNJUGcIqoM+poL8I3\nQrtX2Rmlwx04x3pxeAYJIcIWQ6aE7Cq6swWtIwERUo8Xsil7oHPIQ1OFHevlO/H3VVG3tOWWlhco\nU19Cpycy711V6owZdzKChp9qi+puNa26JOeIJ2Qvpabcad1sJA2bXZV4QzbOFOt5+Wtnc6pzG9NK\nY9Mbq4NDCU3E51a68QQFhzzWK4qlrQRbMHmdnM2uCqaV+WmOey5HQM0FBB3l+CuaON32Du1iFqct\nVFbS8LQT6Fr0cQZnpqnTki02G6OLL+Wlnlo+0DJAiS2zSLGhxE/tsIq4y1zp6xXVOtXnbshvHfMN\n+1WwUO1QV5o2JM7h9rCl01gS+x2qcgQJlVivTN4+XEG3x0mgOUlf2IwQyr7JOKKXNJT46aIRh3cI\ngWRuo5qQHya3lfK9I16aqkroD1bQUuZDILEFfQg5OaN5QGWSFPvn5JNPluPmrd9I+a0aKft2Rfbt\ne03Kb9XIzjVPyjk3rZR/eqtdSinlE+s65JybVsodXcNZPcWqjQflnJtWys0HhyyPv7S9W865aaV8\nfXeflFLKy+5dLS+555WMH3/BN1bJ2/+yOasxmTy2tl3OuWml3N0zEt73ys4eOeemlXL1zt6U973r\nb1vl3JtXSn8gGN539QNr5Id++M+E2w65ffKPa9tlKBRK+nj//shb8qzv/yOH/8Lgd5+S8q5jpOzd\nqd7TJ78Qc/j+l3fLOTetlF0ud2TnQx+T8udnJn3IU297Tn7l0fXJn7NjrXquTX+O2b2/b1TOuWml\n/MOa/fLup1+Twf+vVgb+8V0ZCoXkabc/J+fctFLOuWmlvOze1Tn9q2nZ+bwa19uPZXb7Nb9St79t\npnod07H+EXX73p3Wx72j6vhLd6m/+3apv39/udrufyP29j95t5S/v0JKqb4Pa/f2ZTbubLjnPVL+\n9tLMbuselPJbNfKX3/sP+Zlfvi6llNIfCMqjv/4X+b1ntuT09J+4Z7W89OerpXzjfvUaDLbn9DgT\n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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(data1[:, 1], label='2016')\n", "plt.plot(data2[:, 1], label='2015')\n", "\n", "plt.legend()\n", "\n", "plt.hlines(200, 0, 200, linestyles='--')\n", "plt.hlines(40, 0, 200, linestyles='--')\n", "plt.ylim(0, 220)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* CO \n", " - **Máxima diaria de las medias móviles octohorarias: 10 mg/m³**" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# aeropython: preserve\n", "# http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.convolve.html\n", "def moving_average(x, N=8):\n", " return np.convolve(x, np.ones(N)/N, mode='same')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n+D+nGwPk4QTnFwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(moving_average(data1[:, 0]), label='2016')\n", "\n", "plt.plot(moving_average(data2[:, 0]), label='2015')\n", "\n", "plt.hlines(10, 0, 250, linestyles='--')\n", "plt.ylim(0, 11)\n", "\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* O3\n", " - **Máxima diaria de las medias móviles octohorarias: 120 µg/m3**\n", " - Umbral de información. 180 µg/m3\n", " - Media horaria. Umbral de alerta. 240 µg/m3" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n8py3H7nwmwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(moving_average(data1[:, 2]), label='2016')\n", "#plt.plot(data1[:, 2])\n", "\n", "plt.plot(moving_average(data2[:, 2]), label='2015')\n", "#plt.plot(data2[:, 2])\n", "\n", "plt.hlines(180, 0, 250, linestyles='--')\n", "plt.ylim(0, 190)\n", "\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ¿Cómo leeríamos un archivo sin usar NumPy?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "data_file = '../data/barrio_del_pilar-20151222.csv'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data = []\n", "\n", "with open(data_file) as f:\n", " # Saltamos las tres primeras líneas\n", " for ii in range(3):\n", " f.readline()\n", " \n", " for line in f:\n", " line_string = line\n", " line_list = line.split(';')\n", " \n", " date = line_list[0]\n", " hour = line_list[1]\n", " \n", " components_data = []\n", " for c in line_list[2:]:\n", " if '-' not in c:\n", " components_data.append(float(c))\n", " else:\n", " components_data.append(np.nan)\n", " data.append(components_data)\n", " \n", "print(np.array(data)) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Ya hemos aprendido a efectuar algunas operaciones útiles con NumPy e incluso hemos hecho nuestro primer ejercicio de lectura de datos. Estamos en condiciones de empezar a escribir programas más interesantes, pero aún queda lo mejor._\n", "\n", "Si quieres saber más sobre lectura y escritura de ficheros en Python, puedes consultar al documentación oficial:\n", "\n", "https://docs.python.org/3.6/tutorial/inputoutput.html#reading-and-writing-files" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "
\n", "####

¡Síguenos en Twitter!\n", "
\n", "###### Follow @AeroPython \n", "
\n", "###### Este notebook ha sido realizado por: Juan Luis Cano, Mabel Delgado y Álex Sáez \n", "
\n", "##### \"Licencia
Curso AeroPython por Juan Luis Cano Rodriguez y Alejandro Sáez Mollejo se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "_Las siguientes celdas contienen configuración del Notebook_\n", "\n", "_Para visualizar y utlizar los enlaces a Twitter el notebook debe ejecutarse como [seguro](http://ipython.org/ipython-doc/dev/notebook/security.html)_\n", "\n", " File > Trusted Notebook" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "/* This template is inspired in the one used by Lorena Barba\n", "in the numerical-mooc repository: https://github.com/numerical-mooc/numerical-mooc\n", "We thank her work and hope you also enjoy the look of the notobooks with this style */\n", "\n", "\n", "\n", "El estilo se ha aplicado =)\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Esta celda da el estilo al notebook\n", "from IPython.core.display import HTML\n", "css_file = '../styles/aeropython.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" } }, "nbformat": 4, "nbformat_minor": 1 }