<jupyter_start><jupyter_text>Constantes en Python<jupyter_code>import math
math.pi
math.tau
math.e
2*math.pi
tau = 2*math.pi
math.inf
-math.inf
float('inf')   # el float tiene 8 dígitos exactos mientras que los dbls tiene doble precisión
nan
math.nan  # nan: not a number
float('nan')
sqrt(-1,0)  # ojo con los errores
math.log(10)
math.exp(10) # exponente
math.pow(4,2)  # potencia 
2 + 4
math.hypot(math.nan, math.inf)<jupyter_output><empty_output><jupyter_text>Representación numérica<jupyter_code>2+2
3*5
3/5
# $\int_0^1 x^2 dx$
math.ceil(3.4523)
math.floor(3.4523)
math.trunc(9.145)
math.copysign(3, -2)
math.copysign(3, -0.0)  # colocar los números con punto
math.fabs(-5)
2**3   # '**' es la potencia
math.factorial(4)
x = 5
y = 2

math.factorial(x)/ (math.factorial(y) * math.factorial(x - y))   # ojo que hay librerías como el choose  de r
math.fmod(7,3)  # me da el resto de la división
7%3  # trabaja con números enteros
7//3    # cociente
math.remainder(7,3) # el resto de la división
math.modf(-4.25)  # separa la parte entera de la decimal
math.gcd(24,36)   # Máximo común divisor
math.isfinite(4.6)

math.isinf(4.5)
math.isnan(4.5)
math.sqrt(2)**2 == 2
math.isclose(math.sqrt(2)**2,2, rel_tol = 1e-09)  # rel_tol define la precisión o cercanía
math.sqrt(2)**2<jupyter_output><empty_output><jupyter_text>Funciones Matemáticas<jupyter_code>math.exp(3)  # fn exponencial, esta función es más precisa que hacer la potencia
math.e**3  # diferencias en los resultados
math.pow(math.e, 3) # fíjate que los resultados son similares
math.expm1(1) # corresponde al número exponencial menos 1  
math.exp(1) - 1 # es una manera de hacerlo, pero se pierde precisión (según el instructor, se ve que es igual; USA LA FN ANTERIOR)  
 math.expm1(1e-05) # esta es más precisa
math.exp(1e-05) - 1    # acá se puede notar digferencias con respecto a la expresión anterior
math.log(12)   # si no definimos el argumento en esta fn el programa lo tomará como el log neperiano
math.log(1000,10) # esta es la manera correcta de precisarlo log(arg, base)
math.log1p(1e-5) # esta es más precisa en caso de ln(1 + x)
math.log2(32) # log(32,2)
math.log(32,2) # 
math.log10(1000000)
math.sin(180) # ojo que está en radianes
math.cos(180)
math.cos(math.pi)
math.tan(math.pi/2)  # es un número muy grande, fíjate que se acerca a infinito
math.asin(1)  # Resultado en radianes
math.acos(1)
math.atan(1)  # resultado en radianes
math.degrees(0.7853981633974483)  # convierte los RADIANES a GRADOS
math.radians(60)  # Una transformación de GRADOS a Radianes
math.cos(math.radians(60)) # Una transformación  conjunta
math.hypot(3,4) # qué tan largoi es un vector. es la norma raiz de la suma de los cuadrados
math.sqrt(3**2 + 4**2)
math.atan2(4,3)   # hay que dar el eje de la y y luego el de la x, el resultado está entre [-pi, pi]
math.degrees(math.atan2(4,3)) #  construir el angulo de coordenadas (y,x)
math.sinh(0) # funciones hiperbólicas
math.cosh(0)
math.tanh(0)

math.erf(0)   # función de error
math.erf(math.pi)  
math.erfc(math.pi) # función complementaria
math.gamma(6) # factorial generalizado gamma
math.lgamma(5)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12272872170863883, 'fraction_numerical': 0.05546700669429391, 'mean_word_length': 4.476439790575916, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '498989', 'license': 'MIT', 'n_tokens_mistral': 1358, 'n_tokens_neox': 1296, 'n_words': 361, 'path': 'scripts/tema1/05-math-pythonADIPIZ.ipynb', 'repo_name': 'Adipiz/EstadisticaDescriptiva', 'size': '3137'}