Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Manipulation Lessons added #365

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _sources/index_en.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Contents:
lectures/TWP58/toctree_en
lectures/TWP60/toctree_en
lectures/TWP65/toctree_en
lectures/TWP66/toctree_en
quiz/Quiz1_en.rst
quiz/Quiz2_en.rst
quiz/Quiz3_en.rst
Expand Down
1 change: 1 addition & 0 deletions _sources/index_es.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Contenidos:
lectures/TWP58/toctree
lectures/TWP60/toctree
lectures/TWP65/toctree
lectures/TWP66/toctree
quiz/Quiz1.rst
quiz/Quiz2.rst
quiz/Quiz3.rst
Expand Down
107 changes: 107 additions & 0 deletions _sources/lectures/TWP66/TWP66_1.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
====================
Introducción a NumPy
====================

.. image:: ../img/TWP66_001.png
:align: center
:alt:

Introducción
------------
Esta conferencia integral se centra en dominar NumPy, una de las bibliotecas más populares en Python para cálculos numéricos. Exploraremos varias funcionalidades de NumPy, entendiendo cómo crear y manipular arreglos para realizar operaciones numéricas de manera efectiva.

Parte 1: Entendiendo los Conceptos Básicos de NumPy
---------------------------------------------------

.. contents::
:local:

Visión General
~~~~~~~~~~~~~~
NumPy es una poderosa biblioteca para cálculos numéricos en Python. Proporciona soporte para grandes arreglos y matrices multidimensionales, junto con una colección de funciones matemáticas para operar sobre estos arreglos.

Instalando NumPy
~~~~~~~~~~~~~~~~
Instala NumPy usando pip::

pip install numpy

Importando NumPy
~~~~~~~~~~~~~~~~
Importa NumPy en tu script de Python::

import numpy as np

Creando Arreglos
~~~~~~~~~~~~~~~~
**Arreglo 1D**::

import numpy as np

# Crear un arreglo 1D
arr = np.array([1, 2, 3, 4, 5])
print("Arreglo 1D:", arr)

**Arreglo 2D**::

import numpy as np

# Crear un arreglo 2D
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("Arreglo 2D:", arr_2d)

Operaciones con Arreglos
~~~~~~~~~~~~~~~~~~~~~~~~
**Operaciones Básicas**::

import numpy as np

# Crear un arreglo
arr = np.array([1, 2, 3, 4, 5])

# Realizar operaciones básicas
print("Suma:", np.sum(arr))
print("Media:", np.mean(arr))

**Operaciones Elemento a Elemento**::

import numpy as np

# Crear arreglos
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# Suma elemento a elemento
print("Suma Elemento a Elemento:", arr1 + arr2)

# Multiplicación elemento a elemento
print("Multiplicación Elemento a Elemento:", arr1 * arr2)

Manipulación de la Forma
~~~~~~~~~~~~~~~~~~~~~~~~
**Cambio de Forma de Arreglos**::

import numpy as np

# Crear un arreglo 1D
arr = np.array([1, 2, 3, 4, 5, 6])

# Cambiar la forma del arreglo a 2x3
arr_reshaped = np.reshape(arr, (2, 3))
print("Arreglo con Forma Cambiada:", arr_reshaped)

**Aplanamiento de Arreglos**::

import numpy as np

# Crear un arreglo 2D
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Aplanar el arreglo
arr_flat = arr_2d.flatten()
print("Arreglo Aplanado:", arr_flat)

Cuestionario
------------
.. raw:: html
:file: ../_static/TWP66/TWP66_1.html
107 changes: 107 additions & 0 deletions _sources/lectures/TWP66/TWP66_1_en.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
=====================
Introduction to NumPy
=====================

.. image:: ../img/TWP66_001.png
:align: center
:alt:

Introduction
------------
This comprehensive lecture focuses on mastering NumPy, one of the most popular libraries in Python for numerical computations. We will explore various functionalities of NumPy, understanding how to create and manipulate arrays to effectively perform numerical operations.

Part 1: Understanding NumPy Basics
----------------------------------

.. contents::
:local:

Overview
~~~~~~~~
NumPy is a powerful library for numerical computations in Python. It provides support for large multi-dimensional arrays and matrices, along with a collection of mathematical functions to operate on these arrays.

Installing NumPy
~~~~~~~~~~~~~~~~
Install NumPy using pip::

pip install numpy

Importing NumPy
~~~~~~~~~~~~~~~
Import NumPy in your Python script::

import numpy as np

Creating Arrays
~~~~~~~~~~~~~~~
**1D Array**::

import numpy as np

# Create a 1D array
arr = np.array([1, 2, 3, 4, 5])
print("1D Array:", arr)

**2D Array**::

import numpy as np

# Create a 2D array
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("2D Array:", arr_2d)

Array Operations
~~~~~~~~~~~~~~~~
**Basic Operations**::

import numpy as np

# Create an array
arr = np.array([1, 2, 3, 4, 5])

# Perform basic operations
print("Sum:", np.sum(arr))
print("Mean:", np.mean(arr))

**Element-wise Operations**::

import numpy as np

# Create arrays
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# Element-wise addition
print("Element-wise Addition:", arr1 + arr2)

# Element-wise multiplication
print("Element-wise Multiplication:", arr1 * arr2)

Shape Manipulation
~~~~~~~~~~~~~~~~~~
**Reshaping Arrays**::

import numpy as np

# Create a 1D array
arr = np.array([1, 2, 3, 4, 5, 6])

# Reshape the array to 2x3
reshaped_arr = np.reshape(arr, (2, 3))
print("Reshaped Array:", reshaped_arr)

**Flattening Arrays**::

import numpy as np

# Create a 2D array
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

# Flatten the array
flat_arr = arr_2d.flatten()
print("Flattened Array:", flat_arr)

Quiz
----
.. raw:: html
:file: ../_static/TWP66/TWP66_1_en.html
136 changes: 136 additions & 0 deletions _sources/lectures/TWP66/TWP66_2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
=====================
Introducción a Pandas
=====================

.. image:: ../img/TWP66_002.png
:align: center
:alt:


Introducción
------------
Esta lección se centra en Pandas, una poderosa biblioteca de Python para la manipulación y el análisis de datos. Exploraremos sus capacidades para manejar datos estructurados de manera efectiva.

Comprendiendo los conceptos básicos de Pandas
---------------------------------------------
Pandas proporciona estructuras de datos como Series y DataFrame. Está construido sobre NumPy, lo que facilita el trabajo con datos estructurados.

.. code-block:: python
:caption: Importando Pandas y Cargando Datos Simulados

import pandas as pd

# Datos simulados
data = {
'Name': ['John', 'Anna', 'Peter', 'Linda', 'Jack'],
'Age': [28, 23, 25, 24, 30],
'City': ['Nueva York', 'París', 'Berlín', 'Londres', 'Tokio']
}

# Creando un DataFrame
df = pd.DataFrame(data)

# Mostrando el DataFrame
print(df)

Análisis Exploratorio de Datos (EDA) con Pandas
-----------------------------------------------
Verifica las dimensiones de los datos y examina su estructura:

.. code-block:: python
:caption: Verificando Dimensiones e Información de los Datos

# Forma del DataFrame
print(df.shape)

# Información sobre el DataFrame
print(df.info())

Limpieza y Transformación de Datos
----------------------------------
Renombrar columnas:

.. code-block:: python
:caption: Limpiando y Transformando Datos

# Renombrar columnas
df.rename(columns={'Name': 'Nombre Completo', 'City': 'Ubicación'}, inplace=True)


Manipulación y Agregación de Datos
----------------------------------
Selecciona, filtra, agrupa y agrega datos:

.. code-block:: python
:caption: Manipulación y Agregación de Datos

# Seleccionando columnas
print(df[['Nombre', 'Edad']])

# Filtrando datos
datos_filtrados = df[df['Edad'] > 25]
print(datos_filtrados)

# Agrupando y agregando datos
estadisticas_por_edad = df.groupby('Edad').size()
print(estadisticas_por_edad)

Visualización de Datos con Pandas y Matplotlib
----------------------------------------------
Utiliza Matplotlib para las visualizaciones:

.. code-block:: python
:caption: Visualización de Datos

import matplotlib.pyplot as plt

# Ejemplo de gráfico
df['Edad'].plot(kind='hist', bins=5)
plt.title('Distribución de Edad')
plt.xlabel('Edad')
plt.ylabel('Frecuencia')
display(plt, "plot_area") # Reemplazar con plt.show() si se ejecuta localmente

.. note::
Estamos utilizando PyScript para ejecutar NumPy y Matplotlib en el navegador.
Usa `plt.show()` en lugar de `display(plt, "plot_area")` para mostrar los gráficos si ejecutas el código localmente.

Ejemplo Interactivo
--------------------
Aquí tienes un ejemplo interactivo donde puedes filtrar el DataFrame en función de la edad y visualizar los resultados:

.. activecode:: ac_l66_2_1
:nocodelens:
:language: python3
:python3_interpreter: pyscript

import pandas as pd
import matplotlib.pyplot as plt

# Datos simulados
data = {
'Name': ['John', 'Anna', 'Peter', 'Linda', 'Jack'],
'Age': [28, 23, 25, 24, 30],
'City': ['Nueva York', 'París', 'Berlín', 'Londres', 'Tokio']
}

# Crear DataFrame
df = pd.DataFrame(data)

# Filtrar DataFrame por edad
df_filtrado = df[df['Edad'] > 25]

# Graficando datos filtrados
df_filtrado.plot(kind='bar', x='Nombre', y='Edad', color='skyblue')
plt.title('Distribución de Edad para Personas Mayores de 25 Años')
plt.xlabel('Nombre')
plt.ylabel('Edad')
print("El gráfico se muestra abajo en el campo:")
display(plt, "plot_area") # Reemplazar con plt.show() si se ejecuta localmente

.. note::
Asegúrate de ejecutar todos los bloques de código proporcionados para ver los resultados completos y comprender las funcionalidades demostradas.

Ejercicio
---------
Escribe un código para calcular la edad promedio de las personas en el DataFrame.
Loading
Loading