{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "# Librerías\n", "Este cuaderno forma parte del curso de [Iniciación a la programación con Python](https://campusvirtual.ull.es/ocw/course/view.php?id=179) del programa de Open Course Ware (OCW) de la Universidad de La Laguna.\n" ], "metadata": { "id": "b3ntAe-T6PGf" } }, { "cell_type": "markdown", "source": [ "## Librerías\n", "\n", "Una librería es un conjunto de código predefinido con funciones que están diseñadas para realizar tareas específicas. Se importan en Python utilizando la palabra `import`. Se utiliza poniendo el nombre seguido de un punto. Por ejemplo:\n", "\n", "```python\n", "import datetime #Librería que nos permite trabajar con fechas.\n", "\n", "print(\"Fecha y hora actual:\", datetime.datetime.now()) #Sale por pantalla `Fecha y hora actual: `, seguido de la fecha y la hora en la que se ejecute el código.\n", "\n", "print(\"Hora actual:\", datetime.datetime.now().time()) #Sale por pantalla `Hora actual: `, seguido de la hora en la que se ejecute el código.\n", "```\n", "\n", "También se puede utilizar la palabra `as` para importar una librería y llamarla como queramos. Por ejemplo:\n", "\n", "```python\n", "import datetime as dt #Librería que nos permite trabajar con fechas.\n", "\n", "print(\"Fecha y hora actual:\", dt.datetime.now()) #Sale por pantalla `Fecha y hora actual: `, seguido de la fecha y la hora en la que se ejecute el código.\n", "\n", "print(\"Hora actual:\", dt.datetime.now().time()) #Sale por pantalla `Hora actual: `, seguido de la hora en la que se ejecute el código.\n", "```\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "BSHSixuz6R_X" } }, { "cell_type": "code", "source": [ "import random #Librería que ermite generar números aleatorios.\n", "\n", "print(\"Número aleatorio:\", random.randint(1, 10)) #Sale por pantalla un número aleatorio entre 1 y 10, diferente cada vez que se ejecute.\n", "\n", "print(\"Número decimal aleatorio:\", random.random()) #Sale por pantalla un número aletorio con decimales entre 0 y 1." ], "metadata": { "id": "cDc2krfa71g1" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## math\n", "\n", "La librería *math* proporciona un conjuntos de funciones y constantes matemáticas para realizar operaciones avanzadas. Es una librería estándar de Python, por lo que no requiere instalación por separado. Por ejemplo:\n", "\n", "```python\n", "import math\n", "\n", "print(\"El ángulo 45 en radianes es:\",math.radians(45)) #Sale por pantalla `El ángulo 45 en radianes es: 0.7853981633974483`.\n", "\n", "print(\"La raíz cuadrada de 146 es:\",math.sqrt(146)) #Sale por pantalla `La raíz cuadrada de 146 es: 12.083045973594572`.\n", "```\n", "\n", "Existen muchas más funciones y la documentación completa de esta librería puede consultarse en la página oficial: [math - Mathematical functions](https://docs.python.org/3/library/math.html).\n", "\n", "Para la elaboración de este cuaderno se ha utilizado la última versión disponible de Python en el momento: 3.11.5.\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "q-84Q7zH8Lrr" } }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "S1UjydkQ58mu" }, "outputs": [], "source": [ "import math\n", "\n", "print(\"El número pi es:\", math.pi) #Sale por pantalla `El número pi es: 3.141592653589793`.\n", "\n", "n=8.723\n", "print(\"Redondeo hacia arriba de\",n,\"es:\",math.ceil(n)) #Sale por pantalla `Redondeo hacia arriba de 8.723 es: 9`.\n", "print(\"Redondeo hacia abajo de\",n,\"es:\",math.floor(n)) #Sale por pantalla `Redondeo hacia abajo de 8.723 es: 8`.\n", "print(\"El logaritmo natural de\",n,\"es:\",math.log(n)) #Sale por pantalla `El logaritmo natural de 8.723 es: 2.1659632154510815`." ] }, { "cell_type": "markdown", "source": [ "## NumPy\n", "\n", "NumPy, abreviación de Numerical Python, es una librería con la que es posible trabajar con arreglos (arrays) multidimensionales. Por ejemplo:\n", "\n", "```python\n", "import numpy as np\n", "\n", "array = np.array([1, 2, 3, 4, 5]) #Se crea un array.\n", "\n", "print(\"Array original:\", array) #Sale por pantalla `Array original: [1 2 3 4 5]`.\n", "print(\"Doble del array:\", array*2) #Sale por pantalla `Doble del array: [ 2 4 6 8 10]`.\n", "print(\"Suma del array más 10:\", array+10) #Sale por pantalla `Suma del array más 10: [11 12 13 14 15]`.\n", "\n", "```\n", "\n", "Existen muchas más funciones y la documentación completa de esta librería puede consultarse en la página oficial: [NumPy user guide](https://numpy.org/doc/1.26/user/index.html).\n", "\n", "Para la elaboración de este cuaderno se ha utilizado la última versión disponible en el momento: 1.26.\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "I6wekQPbBJmB" } }, { "cell_type": "code", "source": [ "import numpy as np\n", "\n", "matriz = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #Crea una matriz bidimensional.\n", "\n", "print(\"Matriz:\", matriz) #Sale por pantalla `Matriz: [[1 2 3]; [4 5 6]; [7 8 9]]`.\n", "print(\"Suma total de la matriz:\", np.sum(matriz)) #Sale por pantalla `Suma total de la matriz: 45`.\n", "print(\"Suma por columnas:\", np.sum(matriz, axis=0)) #Sale por pantalla `Suma por columnas: [12 15 18]`.\n", "print(\"Suma por filas:\", np.sum(matriz, axis=1)) #Sale por pantalla `Suma por filas: [ 6 15 24]`.\n", "print(\"Matriz traspuesta:\",matriz.T) #Sale por pantalla `Matriz traspuesta: [[1 4 7]; [2 5 8]; [3 6 9]]`." ], "metadata": { "id": "mx_mG-MvCw5f" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## Pandas\n", "\n", "La librería Pandas se utiliza en entornos de análisis de datos, ya que ofrece estructuras de datos flexibles y funciones para manipular datos de manera eficiente. Es posible trabajar con diferentes tipos de datos como:\n", "* Series: estructura unidimensional similar a las listas.\n", "* Dataframe: estructura bidimensional donde los datos están organizados en filas y columnas.\n", "* Paneles: estructura tridimensional. Obseletos desde la versión 0.20.0 de Pandas. No están disponibles desde la versión 0.25.0.\n", "\n", "Por ejemplo:\n", "\n", "```python\n", "import pandas as pd\n", "\n", "nombres = ['Ana', 'Carlos', 'David'] #Lista con nombres.\n", "edades = [25, 30, 28] #Lista con edades.\n", "ciudades = ['Santa Cruz de Tenerife', 'Arona', 'La Guancha'] #Lista con ciudades.\n", "\n", "df = pd.DataFrame({'Nombre': nombres, 'Edad': edades, 'Ciudad': ciudades}) #Se crea un DataFrame.\n", "\n", "print(\"Personas mayores de 27 años:\\n\", df[df['Edad'] > 27]) #Sale por pantalla\n", "#`Personas mayores de 27 años:\n", "# Nombre Edad Ciudad\n", "#1 Carlos 30 Arona\n", "#2 David 28 La Guancha`.\n", "#'\\n' es un salto de línea.\n", "```\n", "\n", "Existen muchas más funciones y la documentación completa de esta librería puede consultarse en la página oficial: [User Guide - pandas 2.1.1](https://pandas.pydata.org/docs/user_guide/index.html).\n", "\n", "Para la elaboración de este cuaderno se ha utilizado la última versión disponible en el momento: 2.1.1.\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "U_WIOo3CD9rO" } }, { "cell_type": "code", "source": [ "import pandas as pd\n", "\n", "coches = {\n", " 'Marca': ['Volkswagen', 'Audi', 'Seat', 'Skoda'],\n", " 'Modelo': ['Golf', 'A4', 'Ibiza', 'Octavia'],\n", " 'Año': [2021, 2020, 2022, 2021],\n", "} #Datos de diferentes coches.\n", "\n", "df_coches = pd.DataFrame(coches) #Se crea el DataFrame de los coches.\n", "\n", "propietarios = {\n", " 'Marca': ['Volkswagen', 'Seat', 'Audi'],\n", " 'Propietario': ['Juan', 'Maria', 'Pedro'],\n", " 'Ciudad': ['Santa Cruz de Tenerife', 'Candelaria', 'El Sauzal'],\n", "} #Datos de diferentes propietarios.\n", "\n", "df_propietarios = pd.DataFrame(propietarios) #Se crea el DataFrame de los propietarios.\n", "\n", "df_completo = pd.merge(df_coches, df_propietarios, on='Marca', how='inner') #Se combinan los dos DataFrame. Se debe seleccionar una clave única, en este caso, la marca.\n", "\n", "print(\"Datos completo:\\n\",df_completo) #Sale por pantalla el DataFrame combinado completo.\n", "#`Datos completo:\n", "# Marca Modelo Año Propietario Ciudad\n", "#0 Volkswagen Golf 2021 Juan Santa Cruz de Tenerife\n", "#1 Audi A4 2020 Pedro El Sauzal\n", "#2 Seat Ibiza 2022 Maria Candelaria`.\n", "\n", "print(\"Personas con un coche de 2021 o más nuevo:\\n\", df_completo[df_completo['Año'] >= 2021]) #Sale por pantalla\n", "#`Personas con un coche de 2021 o más nuevo:\n", "# Marca Modelo Año Propietario Ciudad\n", "#0 Volkswagen Golf 2021 Juan Santa Cruz de Tenerife\n", "#2 Seat Ibiza 2022 Maria Candelaria`." ], "metadata": { "id": "AMEVxfJ1EQj3" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## matplotlib\n", "\n", "matplotlib es una librería con la que es posible visualizar datos, ya que permite crear gráficos de manera sencilla y muy potente. Por ejemplo:\n", "\n", "```python\n", "import matplotlib.pyplot as plt\n", "\n", "frutas = ['Fresas', 'Plátanos', 'Papayas', 'Naranjas', 'Peras'] #Nombre de frutas.\n", "ventas = [30, 45, 25, 20, 22] #Toneladas de venta.\n", "explode = (0, 0.1, 0, 0, 0) #Separamos la categoría de 'Plátanos'.\n", "\n", "plt.figure(figsize=(8, 8))\n", "plt.pie(ventas, labels=frutas, autopct='%1.1f%%', startangle=90, explode=explode) #Se crea un gráfico de pastel, con un tamaño de 8x8, con etiquetas de datos y de las frutas.\n", "\n", "plt.title('Venta en toneladas de fruta en el último mes') #Título del gráfico.\n", "plt.legend(frutas, loc='best') #Se incluye leyenda.\n", "\n", "plt.show() #Se muestra el gráfico.\n", "\n", "```\n", "\n", "El resultado es el siguiente:\n", "\n", "![grafico_mat.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApEAAAKSCAYAAACKv4BlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACuVklEQVR4nOzdd3xT9f7H8VeSpuneu3QwWmbZQ1SGCIIMUa/j4gL3df7U6x5X9KqICCpccQuIoigIIqjIBpENZY9OWkrp3ittcn5/FIKV1ULak/F5Ph55aE5OvueTpCnvfs/5fr8aRVEUhBBCCCGEaAKt2gUIIYQQQgj7IyFSCCGEEEI0mYRIIYQQQgjRZBIihRBCCCFEk0mIFEIIIYQQTSYhUgghhBBCNJmESCGEEEII0WQSIoUQQgghRJNJiBRCCKGqEydOMHHiRHbs2KF2KUKIJpAQKYSDWrt2LRqNhrVr11qtzQkTJhAbG2u19i6FRqNh4sSJVmuvrq6OZ599lqioKLRaLddff73V2nYWEydORKPRNOk5ZrOZ2267jc2bN9OtW7cGj6Wnp6PRaJg9e3aj2rL2z4QQ4vwkRAoArrvuOjw8PCgrKzvnPrfffjuurq4UFBRY/fi//PKLXf/ynzdvHu+//77aZYhL8OWXXzJlyhRuuukm5syZw5NPPmm1tuXn49xeffVVSkpKWLBgAS4uLhfc395/VwjhSCRECqA+IFZVVbFo0aKzPl5ZWclPP/3EiBEjCAwMtPrxf/nlF1577TWrt9tSJCTYv9WrVxMZGcl7773HnXfeyaBBg6zWtvx8nF1FRQWurq4sW7YMLy+vRj3nfL8rqqqqePnll61ZohDiPCRECqC+J9Lb25t58+ad9fGffvqJiooKbr/99hauTIiWkZubi5+f3wX3q6urw2g0Nn9BTsDT05NXXnmFsLAwq7Tn5ubWqN5MIYR1SIgUALi7u3PjjTeyatUqcnNzz3h83rx5eHt7c9111wFQXFzME088QVRUFAaDgXbt2jF58mTMZrPlOaeuZ3r33Xf59NNPadu2LQaDgT59+rBt2zbLfhMmTODDDz8E6q9pOnU75d133+Xyyy8nMDAQd3d3evXqxYIFCxr92rZs2cKIESPw9fXFw8ODQYMGsXHjxgb7nLqWKzk5mQkTJuDn54evry933303lZWV521/8ODBLFu2jKNHj1pq/+t1g7m5udx7772Ehobi5uZGt27dmDNnToM2GvtenXLo0CFuuukmAgICcHNzo3fv3ixZsuSC78WGDRu4+eabiY6OxmAwEBUVxZNPPklVVdUZ+y5evJguXbrg5uZGly5dztlL3djPZ8WKFVx55ZX4+fnh5eVF+/btefHFFy9Yc01NDU8++STBwcGWn8Fjx46ddd+srCzuueceQkNDMRgMdO7cmS+//PK87Z9679esWcP+/fstn+HatWsbfC7vv/++5XM5cOAAs2fPRqPRkJ6e3qC9v1+Ler6fD6PRyH/+8x969eqFr68vnp6eDBgwgDVr1lzwfTnl119/ZcCAAXh6euLt7c2oUaPYv39/g30mTJiAl5cXWVlZXH/99Xh5eREcHMzTTz+NyWSy2nEaKzY2lgkTJpyxffDgwQwePPicz7vQ74q/XxN56nt95MgR7rjjDnx9fQkODuaVV15BURQyMzMZO3YsPj4+hIWFMXXq1DOO2Zjv7/le5+jRo1m7di29e/fG3d2dhIQEy8/Gjz/+SEJCAm5ubvTq1Ytdu3ad0UZjvuu1tbW89tprxMXF4ebmRmBgIFdeeSUrVqxoVJ1CXCz5k01Y3H777cyZM4fvv/+eRx991LK9sLCQ5cuXM27cONzd3amsrGTQoEFkZWXx4IMPEh0dzZ9//skLL7xAdnb2Gaft5s2bR1lZGQ8++CAajYZ33nmHG2+8kdTUVPR6PQ8++CDHjx9nxYoVzJ0794y6PvjgA6677jpuv/12jEYj3333HTfffDNLly5l1KhR531Nq1ev5tprr6VXr168+uqraLVaZs2axZAhQ9iwYQN9+/ZtsP8tt9xC69atmTRpEjt37uTzzz8nJCSEyZMnn/MYL730EiUlJRw7doz33nsPwHJqrqqqisGDB5OcnMyjjz5K69at+eGHH5gwYQLFxcX83//9X5PeK4D9+/dzxRVXEBkZyfPPP4+npyfff/89119/PQsXLuSGG244Z60//PADlZWVPPTQQwQGBrJ161ZmzJjBsWPH+OGHHyz7/f777/zjH/+gU6dOTJo0iYKCAu6++25atWp1UZ/P/v37GT16NF27duX111/HYDCQnJx8Rpg/m/vuu4+vv/6a2267jcsvv5zVq1ef9XPPycnhsssuQ6PR8OijjxIcHMyvv/7KvffeS2lpKU888cRZ2w8ODmbu3Lm8+eablJeXM2nSJAA6duxoCdezZs2iurqaBx54AIPBQEBAwAXrPuV8Px+lpaV8/vnnjBs3jvvvv5+ysjK++OILhg8fztatW+nevft52547dy7jx49n+PDhTJ48mcrKSj766COuvPJKdu3a1eCPGZPJxPDhw+nXrx/vvvsuK1euZOrUqbRt25aHHnrIasdpThf6XXEut956Kx07duTtt99m2bJlvPHGGwQEBPDJJ58wZMgQJk+ezDfffMPTTz9Nnz59GDhwIND07+/ZJCcnc9ttt/Hggw9yxx138O677zJmzBg+/vhjXnzxRR5++GEAJk2axC233MLhw4fRauv7dxr7XZ84cSKTJk3ivvvuo2/fvpSWlrJ9+3Z27tzJsGHDmvo2C9F4ihAn1dXVKeHh4Ur//v0bbP/4448VQFm+fLmiKIry3//+V/H09FSOHDnSYL/nn39e0el0SkZGhqIoipKWlqYASmBgoFJYWGjZ76efflIA5eeff7Zse+SRR5Rz/ThWVlY2uG80GpUuXbooQ4YMOe/rMZvNSlxcnDJ8+HDFbDY3aK9169bKsGHDLNteffVVBVDuueeeBm3ccMMNSmBg4HmPoyiKMmrUKCUmJuaM7e+//74CKF9//XWD+vv37694eXkppaWliqI07b26+uqrlYSEBKW6urrBa7388suVuLg4y7Y1a9YogLJmzZoGr/3vJk2apGg0GuXo0aOWbd27d1fCw8OV4uJiy7bff/9dAc54nY35fN577z0FUPLy8s44/vkkJiYqgPLwww832H7bbbcpgPLqq69att17771KeHi4kp+f32Dff/7zn4qvr+9ZX/tfDRo0SOncuXODbac+Fx8fHyU3N7fBY7NmzVIAJS0trcH2s73v5/r5qKurU2pqahpsKyoqUkJDQ8/4Wfy7srIyxc/PT7n//vsbbD9x4oTi6+vbYPv48eMVQHn99dcb7NujRw+lV69eVjvOqe/RhcTExCjjx48/Y/ugQYOUQYMGWe6fev9nzZpl2Xa+3xV//5k4Vc8DDzxg2VZXV6e0atVK0Wg0yttvv23ZXlRUpLi7uzeoq7Hf3/O9TkD5888/LduWL1+uAIq7u3uD79wnn3xyxs9NY7/r3bp1U0aNGnXeWoRoDnI6W1jodDr++c9/smnTpgan6ObNm0doaChXX301UN+bNWDAAPz9/cnPz7fchg4dislkYv369Q3avfXWW/H397fcHzBgAACpqamNqsvd3d3y/0VFRZSUlDBgwAB27tx53uclJiaSlJTEbbfdRkFBgaXOiooKrr76atavX9/g9DvAv/71rwb3BwwYQEFBAaWlpY2q9e9++eUXwsLCGDdunGWbXq/n8ccfp7y8nHXr1jXY/0LvVWFhIatXr+aWW26hrKzM8poKCgoYPnw4SUlJZGVlnbOev76XFRUV5Ofnc/nll6MoiuVUWnZ2NomJiYwfPx5fX1/L/sOGDaNTp07nbfNcn8+paw1/+umnM97z8/nll18AePzxxxts/3uvoqIoLFy4kDFjxqAoSoOfy+HDh1NSUnLBn5fz+cc//kFwcPBFP/9cdDodrq6uQP1UN4WFhdTV1dG7d+8L1rtixQqKi4sZN25cg9er0+no16/fWU+Jn+3n+0Lfw4s5jq257777LP+v0+no3bs3iqJw7733Wrb7+fnRvn37Bu9HU7+/Z9OpUyf69+9vud+vXz8AhgwZQnR09BnbL+a77ufnx/79+0lKSmrS+yLEpZLT2aKB22+/nffee4958+bx4osvcuzYMTZs2MDjjz+OTqcDICkpiT179pzzH9W/X1P511+UgCUkFRUVNaqmpUuX8sYbb5CYmEhNTY1l+4Xmozv1C3X8+PHn3KekpKRBaDtfrT4+Po2q96+OHj1KXFyc5fTUKR07drQ8/lcXeq+Sk5NRFIVXXnmFV1555azHzM3NJTIy8qyPZWRk8J///IclS5ac8f6XlJQ0qCkuLu6M57dv3/6McNOYz+fWW2/l888/57777uP555/n6quv5sYbb+Smm2464735q6NHj6LVamnbtu0ZdfxVXl4excXFfPrpp3z66adnbets1/o2VuvWrS/6uRcyZ84cpk6dyqFDh6itrW30MU/9fA8ZMuSsj//959XNze2M76y/v/8Fv4dNPY4t+vv3ytfXFzc3N4KCgs7Y/tcpzJr6/W3ssQGioqLOuv1ivuuvv/46Y8eOJT4+ni5dujBixAjuvPNOunbtesH6hLgUEiJFA7169aJDhw58++23vPjii3z77bcoitJgVLbZbGbYsGE8++yzZ20jPj6+wf1T4fPvFEW5YD0bNmzguuuuY+DAgcycOZPw8HD0ej2zZs0650jyv9YJMGXKlHNeW/b3aUUupVZruNDxT72mp59+muHDh59133bt2p11u8lkYtiwYRQWFvLcc8/RoUMHPD09ycrKYsKECU3qITylsZ+Pu7s769evZ82aNSxbtozffvuN+fPnM2TIEH7//fdzvu7GOlX7HXfccc4/Gi7lH9S/9raecq4/Yho7UAXg66+/ZsKECVx//fU888wzhISEoNPpmDRpEikpKed97qnXPHfu3LOObv77KOWLfY+bepzGON97d6k/C2dztjZb6rt+ruNY87s+cOBAUlJS+Omnn/j999/5/PPPee+99/j4448b9MIKYW0SIsUZbr/9dl555RX27NnDvHnziIuLo0+fPpbH27ZtS3l5OUOHDrXaMc/1j8rChQtxc3Nj+fLlGAwGy/ZZs2ZdsM1TvVc+Pj5WrfVszlV/TEwMe/bswWw2N+jNOHTokOXxpmjTpg1Qf0qtqa9p7969HDlyhDlz5nDXXXdZtv99BOepms52auzw4cMN7jfl89FqtVx99dVcffXVTJs2jbfeeouXXnqJNWvWnPO1xMTEYDabSUlJadD7+Pc6To3cNplMzf5Zn3Kql7i4uLjB9rP1Tp3r52PBggW0adOGH3/8scE+r7766gWPf+rnOyQkpFlfc3Mcx9/f/4z3Derfu1M/4+fS1BVxLoW1v79N0dTvekBAAHfffTd333035eXlDBw4kIkTJ0qIFM1KrokUZzjV6/if//yHxMTEM+aGvOWWW9i0aRPLly8/47nFxcXU1dU1+Zienp6W5/+VTqdDo9E06N1JT09n8eLFF2yzV69etG3blnfffZfy8vIzHs/Ly2tynefi6elpOR38VyNHjuTEiRPMnz/fsq2uro4ZM2bg5eXV5AmtQ0JCGDx4MJ988gnZ2dlnPH6+13Sq5+OvPS2KovDBBx802C88PJzu3bszZ86cBq9pxYoVHDhw4Iw2G/P5FBYWnlHPqd7hv54C/7trr70WgOnTpzfY/vcZAHQ6Hf/4xz9YuHAh+/btO6Mda37Wp5wKV3+9BthkMp31dPq5fj7O9pls2bKFTZs2XfD4w4cPx8fHh7feeqvBafBTrPWam+M4bdu2ZfPmzQ3m21y6dCmZmZkXfO65flc0B2t/f5uiKd/1v68i5uXlRbt27c773RLCGqQnUpyhdevWXH755fz0008AZ4TIZ555hiVLljB69GgmTJhAr169qKioYO/evSxYsID09PQzrjW6kF69egH1AyiGDx9uGeQzatQopk2bxogRI7jtttvIzc3lww8/pF27duzZs+e8bWq1Wj7//HOuvfZaOnfuzN13301kZCRZWVmsWbMGHx8ffv755ybVeb7658+fz1NPPUWfPn3w8vJizJgxPPDAA3zyySdMmDCBHTt2EBsby4IFC9i4cSPvv/8+3t7eTT7Whx9+yJVXXklCQgL3338/bdq0IScnh02bNnHs2DF279591ud16NCBtm3b8vTTT5OVlYWPjw8LFy486zVxkyZNYtSoUVx55ZXcc889FBYWMmPGDDp37twgkDf283n99ddZv349o0aNIiYmhtzcXGbOnEmrVq248sorz/lau3fvzrhx45g5cyYlJSVcfvnlrFq1iuTk5DP2ffvtt1mzZg39+vXj/vvvp1OnThQWFrJz505Wrlx51iB7KTp37sxll13GCy+8QGFhIQEBAXz33Xdn/SPqXD8fo0eP5scff+SGG25g1KhRpKWl8fHHH9OpU6ez/uHzVz4+Pnz00Ufceeed9OzZk3/+858EBweTkZHBsmXLuOKKK/jf//53ya+zOY5z3333sWDBAkaMGMEtt9xCSkoKX3/99RnXvp7NuX5XNIfm+P42RWO/6506dWLw4MH06tWLgIAAtm/fzoIFCxpM1SZEs1BhRLiwAx9++KECKH379j3r42VlZcoLL7ygtGvXTnF1dVWCgoKUyy+/XHn33XcVo9GoKMrp6TmmTJlyxvP521QcdXV1ymOPPaYEBwcrGo2mwRQeX3zxhRIXF6cYDAalQ4cOyqxZsxo9lYiiKMquXbuUG2+8UQkMDFQMBoMSExOj3HLLLcqqVass+5xq7+9T0JxrGpe/Ky8vV2677TbFz8/vjGlwcnJylLvvvlsJCgpSXF1dlYSEhAZTlihK094rRVGUlJQU5a677lLCwsIUvV6vREZGKqNHj1YWLFhg2edsU80cOHBAGTp0qOLl5aUEBQUp999/v7J79+4zplFRFEVZuHCh0rFjR8VgMCidOnVSfvzxR2X8+PFnTFXTmM9n1apVytixY5WIiAjF1dVViYiIUMaNG3fGNFFnU1VVpTz++ONKYGCg4unpqYwZM0bJzMw86/uSk5OjPPLII0pUVJSi1+uVsLAw5eqrr1Y+/fTTCx7nfFP8nO1zUZT6z2Ho0KGKwWBQQkNDlRdffFFZsWLFGe/7uX4+zGaz8tZbbykxMTGKwWBQevTooSxduvSs7/O5rFmzRhk+fLji6+uruLm5KW3btlUmTJigbN++3bLP+PHjFU9PzzOe25TvUWOO05T2pk6dqkRGRioGg0G54oorlO3btzdqip/z/a74+8/Eub7X53o/zvYz0Jjv77nExMScdeodQHnkkUcabDvXz1pjvutvvPGG0rdvX8XPz09xd3dXOnTooLz55puW38VCNBeNorTQiAEhhBBCCOEw5JpIIYQQQgjRZBIihRBCCCFEk0mIFEIIIYQQTSYhUgghhBBCNJmESCGEEEII0WQSIoUQQgghRJNJiBRCCCGEEE0mIVIIIYQQQjSZhEghhBBCCNFkEiKFEEIIIUSTSYgUQgghhBBNJiFSCCGEEEI0mYRIIYQQQgjRZC5qFyCEEEKIlmEymaitrVW7DNFIer0enU6ndhnnJCFSCCGEcHCKonDixAmKi4vVLkU0kZ+fH2FhYWg0GrVLOYOESCGEEMLBnQqQISEheHh42GQgEQ0pikJlZSW5ubkAhIeHq1zRmSRECiGEEA7MZDJZAmRgYKDa5YgmcHd3ByA3N5eQkBCbO7UtA2uEEEIIB3bqGkgPDw+VKxEX49TnZovXskqIFEIIIZyAnMK2T7b8uUmIFEIIIYQQTSYhUgghhBBCNJkMrBFCCCGcVOzzy1r0eOlvj2rS/hMmTGDOnDlnbE9KSqJdu3bWKktcJAmRQgghhLBZI0aMYNasWQ22BQcHN7hvNBpxdXVtybIEcjpbCCGEEDbMYDAQFhbW4Hb11Vfz6KOP8sQTTxAUFMTw4cMB2LdvH9deey1eXl6EhoZy5513kp+fb2lrwYIFJCQk4O7uTmBgIEOHDqWiogKAbdu2MWzYMIKCgvD19WXQoEHs3LnT8lxFUZg4cSLR0dEYDAYiIiJ4/PHHW/bNsDESIoUQQghhd+bMmYOrqysbN27k448/pri4mCFDhtCjRw+2b9/Ob7/9Rk5ODrfccgsA2dnZjBs3jnvuuYeDBw+ydu1abrzxRhRFAaCsrIzx48fzxx9/sHnzZuLi4hg5ciRlZWUALFy4kPfee49PPvmEpKQkFi9eTEJCgmqv3xbI6WwhhBBC2KylS5fi5eVluX/ttdcCEBcXxzvvvGPZ/sYbb9CjRw/eeusty7Yvv/ySqKgojhw5Qnl5OXV1ddx4443ExMQANAiBQ4YMaXDcTz/9FD8/P9atW8fo0aPJyMggLCyMoUOHotfriY6Opm/fvs3ymu2F9EQKIYQQwmZdddVVJCYmWm7Tp08HoFevXg322717N2vWrMHLy8ty69ChAwApKSl069aNq6++moSEBG6++WY+++wzioqKLM/Pycnh/vvvJy4uDl9fX3x8fCgvLycjIwOAm2++maqqKtq0acP999/PokWLqKura6F3wTZJT6QQQgghbJanp+dZR2J7eno2uF9eXs6YMWOYPHnyGfuGh4ej0+lYsWIFf/75J7///jszZszgpZdeYsuWLbRu3Zrx48dTUFDABx98QExMDAaDgf79+2M0GgGIiori8OHDrFy5khUrVvDwww8zZcoU1q1bh16vb54Xb+OkJ1IIIYQQdq9nz57s37+f2NhY2rVr1+B2KnBqNBquuOIKXnvtNXbt2oWrqyuLFi0CYOPGjTz++OOMHDmSzp07YzAYGgzKgfq1rMeMGcP06dNZu3YtmzZtYu/evS3+Wm2F9EQKIYQQwu498sgjfPbZZ4wbN45nn32WgIAAkpOT+e677/j888/Zvn07q1at4pprriEkJIQtW7aQl5dHx44dgfprLOfOnUvv3r0pLS3lmWeewd3d3dL+7NmzMZlM9OvXDw8PD77++mvc3d0t11c6I+mJFEIIIYTdi4iIYOPGjZhMJq655hoSEhJ44okn8PPzQ6vV4uPjw/r16xk5ciTx8fG8/PLLTJ061TJQ54svvqCoqIiePXty55138vjjjxMSEmJp38/Pj88++4wrrriCrl27snLlSn7++WcCAwPVesmq0yinxrYLIYQQwuFUV1eTlpZG69atcXNzU7sc0US2/PlJT6QQQgghhGgyCZFCCCGEEKLJJEQKIYQQQogmkxAphBBCCCGaTEKkEEIIIYRoMgmRQgghhBCiySRECiGEEEKIJpMQKYQQQgghmkxCpBBCCCEcitlsZsqUKSQmJqpdikOTECmEEEIIuzN79mz8/PzO+tibb77JunXrSEhIaNminIyL2gUIIYQQQiUTfVv4eCVN2n3ChAnMmTMHAL1eT3R0NHfddRcvvvjiOZ+zYcMGli5dyurVq9HpdA0ei42N5YknnuCJJ55ocuniTBIihRBCCGGzRowYwaxZs6ipqeGXX37hkUceQa/XEx4eftb9BwwYwJYtW1q4Suckp7OFEEIIYbMMBgNhYWHExMTw0EMPMXToUJYsWXLGfikpKYwdO5bQ0FC8vLzo06cPK1eutDw+ePBgjh49ypNPPolGo0Gj0QBQUFDAuHHjiIyMxMPDg4SEBL799tsGbQ8ePJjHH3+cZ599loCAAMLCwpg4cWKDfTIyMhg7dixeXl74+Phwyy23kJOTY3l89+7dXHXVVXh7e+Pj40OvXr3Yvn27Fd+plichUgghhBB2w93dHaPReMb28vJyRo4cyapVq9i1axejRo1izJgxZGRkAPDjjz/SqlUrXn/9dbKzs8nOzgagurqaXr16sWzZMvbt28cDDzzAnXfeydatWxu0P2fOHDw9PdmyZQvvvPMOr7/+OitWrADqB/KMHTuWwsJC1q1bx4oVK0hNTeXWW2+1PP/222+nVatWbNu2jR07dvD888+j1+ub621qEXI6WwghhBA2T1EUVq1axfLly3nsscfOeLxbt25069bNcn/ixIksXLiQJUuW8OijjxIQEIBOp8Pb25uwsDDLfpGRkTz99NOW+4899hjLly/n+++/p2/fvpbtXbt25dVXXwUgLi6O//3vf6xatYphw4axatUq9u7dS1paGlFRUQB89dVXdO7cmW3bttGnTx8yMjJ45pln6NChg6UNeyc9kUIIIYSwWUuXLsXLyws3NzeuvfZabr311jNOJQOUlpby8MMPEx0djYuLCxqNhn379ll6Is/FZDLx3//+l4SEBAICAvDy8mL58uVnPK9r164N7oeHh5ObmwvAwYMHiYqKsgRIgE6dOuHn58fBgwcBeOqpp7jvvvsYOnQob7/9NikpKRfzdtgUCZFCCCGEsFlXXXUViYmJJCUlUVVVZTmt/Hf//ve/+fPPP1myZAmlpaUoikLfvn3Peur7r6ZMmcIHH3zAc889x5o1a0hMTGT48OFnPO/vp541Gg1ms7nRr2PixIns37+fUaNGsXr1ajp16sSiRYsa/XxbJCFSCCGEEDbL09OTdu3aWXoYz2XTpk3cfPPNdO/eHQ8PD4qLizlw4ECDfVxdXTGZTA22bdy4kbFjx3LHHXfQrVs32rRpw5EjR5pUY8eOHcnMzCQzM9Oy7cCBAxQXF9OpUyfLtvj4eJ588kl+//13brzxRmbNmtWk49gaCZFCCCGEsHvt27dn/vz57Nq1i8TERG677Ta02oYxJzY2lvXr15OVlUV+fj5Qf23iihUr+PPPPzl48CAPPvhgg1HVjTF06FASEhK4/fbb2blzJ1u3buWuu+5i0KBB9O7dm6qqKh599FHWrl3L0aNH2bhxI9u2baNjx45We/1qkIE1QgghhLNq4uTftmzatGncc889XHHFFQQFBfHcc89RWVnZYJ/XX3+dBx98kLZt21JTU4OiKLz88sukpqYyfPhwPDw8eOCBB7j++uspKWn8e6PRaPjpp5947LHHGDhwIFqtlhEjRjBjxgwAdDodBQUF3HXXXeTk5BAUFMSNN97Ia6+9ZtX3oKVpFEVR1C5CCCGEEM2jurqatLQ0WrdujZubm9rliCay5c9PTmcLIYQQQogmkxAphBBCCCGaTEKkEEIIIYRoMgmRQgghhBCiySRECiGEEEKIJpMQKYQQQgghmkxCpBBCCCGEaDIJkUIIIYQQoskkRAohhBBCiCaTECmEEEIIIZpM1s4WQgghnFTCnIQWPd7e8XubtP+ECROYM2cOAHq9nujoaO666y5efPFFXFwkwqhNPgEhhBBC2KwRI0Ywa9Ysampq+OWXX3jkkUfQ6/W88MILapfm9OR0thBCCCFslsFgICwsjJiYGB566CGGDh3KkiVLmDZtGgkJCXh6ehIVFcXDDz9MeXm55XmzZ8/Gz8+PxYsXExcXh5ubG8OHDyczM9OyT0pKCmPHjiU0NBQvLy/69OnDypUrLY+//vrrdOnS5YyaunfvziuvvALAtm3bGDZsGEFBQfj6+jJo0CB27txp2VdRFCZOnEh0dDQGg4GIiAgef/zx5nirWpyESCGEEELYDXd3d4xGI1qtlunTp7N//37mzJnD6tWrefbZZxvsW1lZyZtvvslXX33Fxo0bKS4u5p///Kfl8fLyckaOHMmqVavYtWsXI0aMYMyYMWRkZABwzz33cPDgQbZt22Z5zq5du9izZw933303AGVlZYwfP54//viDzZs3ExcXx8iRIykrKwNg4cKFvPfee3zyySckJSWxePFiEhJa9jKC5iKns4UQQghh8xRFYdWqVSxfvpzHHnuMJ554wvJYbGwsb7zxBv/617+YOXOmZXttbS3/+9//6NevHwBz5syhY8eObN26lb59+9KtWze6detm2f+///0vixYtYsmSJTz66KO0atWK4cOHM2vWLPr06QPArFmzGDRoEG3atAFgyJAhDer89NNP8fPzY926dYwePZqMjAzCwsIYOnSo5brOvn37Ntfb1KIkRAoh7JbJrFBprKPKaKLy5K2q1nTyfh1VtSZqTQqKoqAoYFYUFKBrjQ6NVoNGo0GrBTQatFoNaECn06J302HwcMHVzaX+vx4u6HRy4kYINSxduhQvLy9qa2sxm83cdtttTJw4kZUrVzJp0iQOHTpEaWkpdXV1VFdXU1lZiYeHBwAuLi6W8AfQoUMH/Pz8OHjwIH379qW8vJyJEyeybNkysrOzqauro6qqytITCXD//fdzzz33MG3aNLRaLfPmzeO9996zPJ6Tk8PLL7/M2rVryc3NxWQyUVlZaWnj5ptv5v3336dNmzaMGDGCkSNHMmbMGIcYGGT/r0AI4RAURaGgwkh+eQ2F5UbyK4wUltdQWHHq/40UVNRQUGGkqMJIRY0Jo8l8Ucd6pti9yc9x0Wtx9XDB4O6Cq3t9uPzr/7u6u+DmqcfL3w3vADe8A93QG3QXVZ8Q4rSrrrqKjz76CFdXVyIiInBxcSE9PZ3Ro0fz0EMP8eabbxIQEMAff/zBvffei9FotITIC3n66adZsWIF7777Lu3atcPd3Z2bbroJo9Fo2WfMmDEYDAYWLVqEq6srtbW13HTTTZbHx48fT0FBAR988AExMTEYDAb69+9vaSMqKorDhw+zcuVKVqxYwcMPP8yUKVNYt24der3eum9WC5MQKYRoMbll1Rwrqjp5qySzsP6/WUVVZBVXUVN3caGwJdTVmqkrMVJZYrzwzie5eektgdI78GS4DHDDJ6j+vwYP+/4HxF7JtDH2xdPTk3bt2jXYtmPHDsxmM1OnTkWrrT9L8P3335/x3Lq6OrZv3245fXz48GGKi4vp2LEjABs3bmTChAnccMMNQP01kunp6Q3acHFxYfz48cyaNQtXV1f++c9/4u5++g/RjRs3MnPmTEaOHAlAZmYm+fn5Ddpwd3dnzJgxjBkzhkceeYQOHTqwd+9eevbseQnvjPrk2yKEsKqaOhMpuRUk5ZaRlFPOkZwyUvLKySquorrWdkNic6gur6W6vJa8jLKzPu7q7mIJmb5B7gS28iSolTcB4Z7o9HL6vDlZa9oYk8l08rII+bxaUrt27aitrWXGjBmMGTOGjRs38vHHH5+xn16v57HHHmP69Om4uLjw6KOPctlll1lCZVxcHD/++CNjxoxBo9HwyiuvYDaf+XvqvvvuaxA8/youLo65c+fSu3dvSktLeeaZZxqEzNmzZ2MymejXrx8eHh58/fXXuLu7ExMTY823RBUSIoUQF6XOZCYlr4IjOWUk5ZRxOKc+NB4trMRkVtQuzy4Yq+ooyCqnIKu8wXatVoNfmAdBrbwIbOVFcCtvAlt54eHjqlKljufUtDEADz30kGUwxVNPPcVLL73Et99+S3FxMV26dGHy5MkMHjwYqA8ETzzxBF999RXPP/88R44cITk5mby8PF588UV27dpFbW0t3bt357333rP0NCmKwmuvvcaXX35JTk4OgYGB3HTTTUyfPl2ttwBo+uTftqJbt25MmzaNyZMn88ILLzBw4EAmTZrEXXfd1WA/Dw8PnnvuOW677TaysrIYMGAAX3zxheXxadOmcc8993D55ZcTFBTEc889R2lp6RnHi4uL4/LLL6ewsNAySOeUL774ggceeICePXsSFRXFW2+9xdNPP2153M/Pj7fffpunnnoKk8lEQkICP//8M4GBgVZ+V1qeRlEU+W0vhLigowUVJGYWszuzhN3Hitl/vMRuexYv5ppIW+Dh40pQKy+CourDZVCkN35hHvWDgkSjTZgwgeLiYhYvXmzZNnbsWI4dO0bPnj05cOAAb7/9NhERESxatIiXX36ZvXv3EhcXx+zZs3nggQfo06cPU6ZMITAwkKioKDZv3szx48fp3bs3iqIwdepUli5dSlJSEt7e3ixYsIB7772X7777js6dO3PixAl2797N/fff3+yvt7q6mrS0NFq3bo2bm1uzH89WnAr8xcXFl9yWoijExcXx8MMP89RTT116cU1gy5+f9EQKIc5QWGFkd2YxuzKL2Z1ZzJ5jxRRV1qpdltOrLDWScaCQjAOFlm0uei3B0d5ExPkREe9HeFs/GdDTBH+dNmbcuHHMmjWLjIwMIiIigPqBF7/99huzZs3irbfeAuqnjZk5c2aDqWGceZoXR5eXl8d3333HiRMnLHNDinoSIoUQFFYY2ZxawKaUAv5MySclr0LtkkQj1dWayU4pITulhB2/HUWr0xAS401EnD+R8X6EtfXF1U1+1f/d2aaNuemmm5g9ezbx8fEN9q2pqWlw6tHV1ZWuXbs22MeZp3lxdCEhIQQFBfHpp5/i7++vdjk2RX56hXBCJZW1bE6rD42bUws4nFOGXNjiGMwmhROppZxILWXn8qNotRqC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v/XHP/6R9957j1deeYV9+/bhcrnIz88/5qXvX7vnnnu47777uP766/n3v//N2rVrKSwsPOp5v/0pyWazUVNTU++vY+bMmXz++ecMHz6cN998k3bt2rFkyZJ6P79BZPSEKW9CchvTSUTMc9W4t/qxkM1m0/GHPiwhLIE5fecwp+8cEsITTMc5oWO9Pv7888+MGDGCvLw8XnzxRdasWcPf/vY3gBO+Hv7aNddcw5IlS7jjjjt45513WLt2Lbm5uXXGKCoqIiwsjCVLlvDqq69SWVnJqFGjaj8+YcIE1q5dy3333cd7773H2rVradSoUe0YaWlpfPnllzz44INEREQwdepU+vTpQ2VlpUXfIbGSX5bIqKgosrKyamcYj+f9999n9OjRdOrUicjISEpLS9mwoe6N8aGhoVRXV9f5s1WrVlFcXMwFF1xAx44dadWqFV999ZVHGdu2bct3331X56bkDRs2UFpaSrt27Wr/LCcnh6uuuorXX3+ds88+mwULFnj0eRpEYku4aDlkDzadRMQ8b5yhrfsifdKgjEEsKV5CYQv/OSL2WK+Pa9asoaamhr/+9a+cfvrp5OTk8OOPPx713KqqqjqLO7/88ktKS0tp27Yt4H5tnDhxImeddRa5ubk0adKELVu21BnD4XAwYcIEFixYwIIFCxgzZgwREUdm2letWsX06dMZNmwY7du3JywsrPaS+i8iIiIoKipi/vz5rFy5kvfff59169ZZ9S0SC/nlFj/11bp1a5577jmGDRuGzWbjpptuwm6v25tbtGjB22+/zZgxYwgLCyMpKYns7GxeeOEF3nvvPRISEpg7dy4lJSV1yt+JFBQUkJuby/nnn8+8efOoqqpi6tSp9O3bl9NOO42ysjKuvfZaRo0aRcuWLfn+++9ZvXo155xzjtXfBmuEx8LY52D5LfD+A6bTiJijEhnw4sPiuan7TQxtOdR0FEtkZWVRWVnJ/fffT1FREatWreKhhx466nFOp5MrrriC+fPn43A4mDZtGqeffnrt/ZDZ2dm89NJLFBUVYbPZuOWWW4559W3y5Ml1iuevZWdn8+STT3Laaaexb98+rr322jolc+HChVRXV9O9e3ciIyNZvHgxERERZGToDHJf5JczkfU1d+5ckpOT6dWrFyNHjmT48OF07ty5zmNmzZrFli1byMzMJDk5GYA//elPdOnShcLC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)\n", "\n", "Es posible crear gráficos de diferentes tipos, como barras, histogramas, pastel, dispersión, de caja, o de violín, entre otros. Existen muchos más, además de más funciones. La documentación completa de esta librería puede consultarse en la página oficial: [Matplotlib 3.8.0 documentation](https://matplotlib.org/stable/index.html).\n", "\n", "Para la elaboración de este cuaderno se ha utilizado la última versión disponible en el momento: 3.8.0.\n", "\n", "Puedes probar este tema en la siguiente celda de código." ], "metadata": { "id": "ltwbPz4uKhLk" } }, { "cell_type": "code", "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "data = {\n", " 'Categoría': ['Camisetas', 'Pantalones', 'Vestidos', 'Chaquetas', 'Zapatos'],\n", " 'Cantidad': [100, 75, 50, 40, 60]\n", "} #Datos de inventario de ropa\n", "\n", "df_inventario = pd.DataFrame(data) #Se crea un DataFrame con los datos\n", "\n", "plt.figure(figsize=(8, 5))\n", "plt.barh(df_inventario['Categoría'], df_inventario['Cantidad'], color='skyblue') #Se crea un gráfico de barras horizontal, de tamaño 8x5, con las barras de color azul cielo.\n", "\n", "plt.xlabel('Cantidad en Stock') #Etiqueta del eje x.\n", "plt.ylabel('Categorías de Ropa') #Etiqueta del eje y.\n", "plt.title('Inventario de Ropa en el Almacén') #Título del gráfico.\n", "\n", "plt.gca().invert_yaxis() #Se invierte el eje y para que 'Camisetas' sea la primera barra.\n", "plt.show() #Se muestra el gráfico." ], "metadata": { "id": "vH0jw-suK7I-" }, "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "source": [ "## pip\n", "\n", "pip es una herramienta con la que poder gestionar paquetes en Python, y el cual se utilizar para instalarlos, actualizarlos y administrarlos. Google Colab ya incluye algunos paquetes preinstalados, pero si es necesario instalar alguno en este o en otros entornos, es posible hacerlo ejecutando el comando `!pip`. Este gestor se encuentra incluido en Python desde la version 3.4. Por ejemplo:\n", "\n", "```python\n", "!pip install ping3\n", "import ping3 #Paquete no incluido entre los estándar que permite realizar ping a un servidor.\n", "\n", "web = \"www.google.com\" #Web a la que queremos hacer ping.\n", "print(\"Tiempo de respuesta de Google:\", ping3.ping(web),\"ms\") #Sale por pantalla `Tiempo de respuesta de Google: ...`.\n", "```\n" ], "metadata": { "id": "kyD_AggTPiG5" } } ] }