viernes, 17 de noviembre de 2023

CLASE_15_11


USO DE NUMPY, PANDAS, MATPLOTLIB.PYPLOT, DATETIME
Describe las características e instalación de las librerías Pandas, Numpy y Matplotlib en colaboración con Google.

Las librerías Pandas, Numpy y Matplotlib son herramientas esenciales en el mundo del análisis de datos y la visualización en Python, y son ampliamente utilizadas en Google Colab, una plataforma basada en la nube para escribir y ejecutar código Python. Aquí te describo brevemente cada una y cómo puedes instalarlas en Google Colab:

pandas

  1. Características :

    • Es una librería para manipulación y análisis de datos.
    • Proporciona estructuras de datos rápidas, flexibles y expresivas (como DataFrame) diseñadas para trabajar con datos "relacionales" o "etiquetados" de manera fácil e intuitiva.
    • Ofrece herramientas para leer y escribir datos entre estructuras de datos en memoria y diferentes formatos de archivo como CSV, Excel, bases de datos SQL, entre otros.
  2. Instalación en Google Colab :

    • Pandas generalmente viene preinstalado en Google Colab.
    • Para usarlo, simplemente importa la librería en tu cuaderno de Colab: import pandas as pd.

numpy

  1. Características :

    • Es una librería para el cálculo científico en Python.
    • Proporciona un objeto de matriz multidimensional de alto rendimiento y herramientas para trabajar con estas matrices.
    • Es fundamental para la computación científica con Python, incluyendo un poderoso objeto de matriz N-dimensional, funciones sofisticadas, herramientas para integrar código C/C++ y Fortran, y capacidades de álgebra lineal.
  2. Instalación en Google Colab :

    • Al igual que Pandas, Numpy también suele estar preinstalado.
    • Para usarlo, simplemente importa Numpy: import numpy as np.

Matplotlib

  1. Características :

    • Es una librería para crear visualizaciones estáticas, animadas e interactivas en Python.
    • Permite generar gráficos, histogramas, espectros de potencia, gráficos de barras, diagramas de error, diagramas de dispersión, etc., con solo unas pocas líneas de código.
    • Ampliamente utilizado para la visualización de datos y el apoyo gráfico en la exploración de datos.
  2. Instalación en Google Colab :

    • Generalmente, Matplotlib también está preinstalado en Colab.
    • Para importarlo, EE.UU.: import matplotlib.pyplot as plt.

Instalación de Versiones Específicas (Opcional)

Si necesita una versión específica de cualquiera de estas librerías en Google Colab que no esté preinstalada, puede instalarla usando pip. Por ejemplo, para instalar una versión específica de Pandas, usarías:

!pip install pandas==[version]

Reemplace [version]con la versión específica que necesita.

En resumen, Pandas, Numpy y Matplotlib son herramientas fundamentales en el análisis de datos con Python, y su uso en Google Colab facilitan el trabajo en la nube sin preocuparse por la instalación local de estas librerías. Su integración y facilidad de uso hacen de Colab una excelente plataforma para la ciencia de datos y la investigación.




GENERAR DATOS ALEATORIOS PARA LAS VENTAS DIARIAS EN UN MES

pip install pandas
pip install numpy

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime

# Generar datos aleatorios para las ventas diarias en un mes
np.random.seed(0)  # Para resultados reproducibles
ventas_diarias = np.random.randint(100, 500, 30)

# Crear un rango de fechas para un mes
fechas = pd.date_range(start="2023-01-01", end="2023-01-30")

# Crear un DataFrame de Pandas
datos = pd.DataFrame({
    'Fecha': fechas,
    'Ventas': ventas_diarias
})

# Establecer la columna de fecha como índice
datos.set_index('Fecha', inplace=True)

# Mostrar las primeras filas del DataFrame
print(datos.head())

# Visualizar los datos con Matplotlib
plt.figure(figsize=(10, 6))
plt.plot(datos.index, datos['Ventas'], marker='o', color='b')
plt.title("Ventas Diarias en Enero 2023")
plt.xlabel("Fecha")
plt.ylabel("Ventas")
plt.xticks(rotation=45)
plt.grid(True)
plt.show()

RESULTADOS
           Ventas
Fecha             
2023-01-01     272
2023-01-02     147
2023-01-03     217
2023-01-04     292
2023-01-05     423

Genera el grafico de ventas diarias:


Desarrolla un ejemplo de estadística inferencial mediante un script en Python empleando las bibliotecas de Pandas, Numpy y Matplotlib.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import ttest_ind

# Configurar la semilla para la reproducibilidad
np.random.seed(0)

# Generar datos de ventas aleatorios para dos meses diferentes
# Supongamos que estos datos representan las ventas diarias
ventas_mes1 = np.random.normal(300, 50, 30)  # Media 300, desviación estándar 50, 30 días
ventas_mes2 = np.random.normal(280, 40, 30)  # Media 280, desviación estándar 40, 30 días

# Crear DataFrames para cada mes
datos_mes1 = pd.DataFrame({'Mes': 'Enero', 'Ventas': ventas_mes1})
datos_mes2 = pd.DataFrame({'Mes': 'Febrero', 'Ventas': ventas_mes2})

# Combinar los DataFrames
datos_combinados = pd.concat([datos_mes1, datos_mes2])

# Realizar una prueba t para comparar las medias de ambos meses
t_stat, p_val = ttest_ind(ventas_mes1, ventas_mes2)

# Imprimir los resultados de la prueba t
print("Estadística t:", t_stat)
print("Valor p:", p_val)

# Visualización
plt.figure(figsize=(10, 6))
plt.hist(ventas_mes1, alpha=0.5, label='Enero')
plt.hist(ventas_mes2, alpha=0.5, label='Febrero')
plt.title('Distribución de Ventas en Enero y Febrero')
plt.xlabel('Ventas')
plt.ylabel('Frecuencia')
plt.legend()
plt.show()






sábado, 11 de noviembre de 2023

CICLO_TERMODINAMICO_PYTHON


Elabora un codigo Python para resolver el siguiente ciclo termodinamico: Un cilindro-Piston contiene 10 moles de una gas Diatomico a una presión de 500 KPa y un volumen de 0,249 m3, el Gas experimenta el siguiente ciclo: un proceso inicial de expansión adiabática hasta alcanzar un volumen de 0,479 m3; luego una transformación isotérmica hasta una presión de 100KPa; a continuación se comprime isobáricamente, hasta alcanzar el volumen inicial, y finalmente sufre una evolicion isocorica hasta recuperar el estado inicial. Obtener

a. P, V y T de todos los estados.

b. Diagrama P-V del ciclo.

c. Q,U y W de todos los procesos.

https://colab.research.google.com/drive/19KPQyJE7cyg16ULuBJw6mzkhlB4zM7ya#scrollTo=SBrE4qkPu4t4&line=88&uniqifier=1

import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import R # Constante universal de los gases


# Datos iniciales
n = 10 # moles
P1 = 500e3 # Presión inicial en Pa
V1 = 0.249 # Volumen inicial en m^3
gamma = 7/5 # Índice adiabático para un gas diatómico

# Estado inicial (1)
T1 = P1 * V1 / (n * R) # Ley de gas ideal para calcular la temperatura inicial

# Proceso 1-2: Expansión adiabática
V2 = 0.479 # Volumen final del proceso adiabático en m^3
P2 = P1 * (V1 ** gamma) / (V2 ** gamma) # Relación adiabática
T2 = P2 * V2 / (n * R) # Ley de gas ideal

# Proceso 2-3: Transformación isotérmica
P3 = 100e3 # Presión final en Pa
V3 = n * R * T2 / P3 # Ley de Boyle-Mariotte para volumen en transformación isotérmica

# Proceso 3-4: Compresión isobárica
# El volumen final es igual al volumen inicial (V1), y la presión es constante (P3)
T4 = P3 * V1 / (n * R) # Temperatura en el estado 4

# Proceso 4-1: Evolución isocórica
# La presión aumenta a P1 y el volumen es constante (V1)
T5 = T1 # En realidad es el estado inicial, nombrado T5 para claridad de proceso
P5 = P1 # Es el estado inicial, nombrado P5 para claridad

# Cálculo de trabajo y calor
# Para un proceso adiabático, Q = 0, y el trabajo es la diferencia de energía interna
W12 = (n * R * (T1 - T2)) / (gamma - 1)
Q12 = 0 # Proceso adiabático
U12 = Q12 - W12 # Cambio de energía interna es igual al trabajo realizado ya que Q = 0

# Para una transformación isotérmica, el trabajo es el área bajo la curva en un diagrama PV
W23 = n * R * T2 * np.log(V3/V2)
Q23 = W23 # Proceso isotérmico: ΔU = 0, entonces Q = W
U23 = Q23 - W23 # Cambio de energía interna es cero en transformación isotérmica

# Para compresión isobárica, el trabajo realizado es el producto de la presión y el cambio de volumen
W34 = P3 * (V1 - V3)
Q34 = n * R * (T4 - T2) # Uso de T2 por error, debe ser T3, pero en isobara T3 = T4
U34 = Q34 - W34 # Cambio de energía interna

# Para evolución isocórica, W = 0 y Q = ΔU
W41 = 0
Q41 = n * R * (T1 - T4) # De nuevo, error en el uso de T4, debe ser T5 que es igual a T1
U41 = Q41

# Ahora, generaremos el diagrama P-V
V = np.linspace(V1, V2, 100)
P_adiabatic = P1 * (V1 ** gamma) / (V ** gamma)
plt.plot(V, P_adiabatic, label='Adiabática 1-2')

# Isotérmica 2-3
V = np.linspace(V2, V3, 100)
P_isotherm = n * R * T2 / V
plt.plot(V, P_isotherm, label='Isotérmica 2-3')

# Isobárica 3-4
plt.plot([V3, V1], [P3, P3], label='Isobárica 3-4')

# Isocórica 4-1
plt.plot([V1, V1], [P3, P1], label='Isocórica 4-1')

# Final touches to the plot
plt.xlabel('Volumen (m^3)')
plt.ylabel('Presión (Pa)')
plt.legend()
plt.title('Diagrama P-V del ciclo termodinámico')
plt.show()

# Imprimir resultados
print(f"Estado 1: P = {P1/1e3} kPa, V = {V1} m³, T = {T1} K")
print(f"Estado 2: P = {P2/1e3} kPa, V = {V2} m³, T = {T2} K")
print(f"Estado 3: P = {P3/1e3} kPa, V = {V3} m³, T = {T2} K")
print(f"Estado 4: P = {P3/1e3} kPa, V = {V1} m³, T = {T4} K")

print(f"\nTrabajo y calor para cada proceso:")
print(f"Proceso 1-2: Q = {Q12} J, U = {U12} J, W = {W12} J")
print(f"Proceso 2-3: Q = {Q23} J, U = {U23} J, W = {W23} J")
print(f"Proceso 3-4: Q = {Q34} J, U = {U34} J, W = {W34} J")
print(f"Proceso 4-1: Q = {Q41} J, U = {U41} J, W = {W41} J")

RESULTADOS



Estado 1: P = 500.0 kPa, V = 0.249 m³, T = 1497.3908203095368 K Estado 2: P = 200.0688019414474 kPa, V = 0.479 m³, T = 1152.6055324668162 K Estado 3: P = 100.0 kPa, V = 0.9583295612995328 m³, T = 1152.6055324668162 K Estado 4: P = 100.0 kPa, V = 0.249 m³, T = 299.47816406190736 K Trabajo y calor para cada proceso: Proceso 1-2: Q = 0 J, U = -71667.6096751168 J, W = 71667.6096751168 J Proceso 2-3: Q = 66459.30514411975 J, U = 0.0 J, W = 66459.30514411975 J Proceso 3-4: Q = -70932.9561299533 J, U = -1.4551915228366852e-11 J,
W = -70932.95612995328 J Proceso 4-1: Q = 99600.0 J, U = 99600.0 J, W = 0 J