Está en la página 1de 9

Repaso de cálculo y matemáticas básicas

Basic Math and Calculus Review Comenzaremos el primer capítulo que cubre qué son los
números y cómo funcionan las variables y funciones en un sistema cartesiano. Luego
cubriremos exponentes y logaritmos. Después de eso, aprenderemos las dos operaciones
básicas del cálculo: derivadas e integrales.
Antes de sumergirnos en las áreas aplicadas de las matemáticas esenciales, como la
probabilidad, el álgebra lineal, las estadísticas y el aprendizaje automático, probablemente
deberíamos revisar algunos conceptos básicos de matemáticas y cálculo. Antes de que
dejes caer este libro y corras gritando, ¡no te preocupes! Presentaré cómo calcular
derivadas e integrales para una función de una manera que probablemente no te
enseñaron en la universidad. Tenemos a Python de nuestro lado, no a lápiz y papel.
Incluso si no está familiarizado con las derivadas y las integrales, no necesita
preocuparse.
Haré que estos temas sean lo más precisos y prácticos posible, centrándome solo en lo
que nos ayudará en capítulos posteriores y lo que cae bajo el paraguas de las
"matemáticas esenciales".

¡ESTE NO ES UN CURSO ACELERADO COMPLETO DE MATEMÁTICAS!


Esto no es de ninguna manera una revisión exhaustiva de las matemáticas de la escuela
secundaria y la universidad. Si quieres eso, un gran libro para leer es No Bullshit Guide to
Math and Physics de Ivan Savov (perdón por mi francés). Los primeros capítulos contienen
el mejor curso intensivo de matemáticas de la escuela secundaria y la universidad que he
visto. El libro Matemáticas 1001 del Dr. Richard Elwes también tiene un gran contenido y
explicaciones breves.

Teoría de los números


¿Qué son los números? Prometo no ser demasiado filosófico en este libro, pero ¿no son
los números una construcción que hemos definido? ¿Por qué tenemos los dígitos del 0 al
9 y no tenemos más dígitos que esos? ¿Por qué tenemos fracciones y decimales y no
solo números enteros? Esta área de las matemáticas en la que reflexionamos sobre los
números y por qué los diseñamos de cierta manera se conoce como teoría de números.
La teoría de los números se remonta a la antigüedad, cuando los matemáticos estudiaban
diferentes sistemas numéricos, y explica por qué los hemos aceptado de la forma en que
lo hacemos hoy. Aquí hay diferentes sistemas numéricos que puede reconocer:
Números naturales
Estos son los números 1, 2, 3, 4, 5… y así sucesivamente. Aquí solo se incluyen números
positivos, y son el sistema más antiguo conocido. Los números naturales son tan antiguos
que los hombres de las cavernas marcaban los huesos y las paredes de las cuevas para
llevar registros.
Números enteros
Sumado a los números naturales, posteriormente se aceptó el concepto de “0”; los
llamamos "números enteros". Los babilonios también desarrollaron la útil idea de la
notación de reserva de lugar para "columnas" vacías en números mayores que 9, como
"10", "1000" o "1090". Esos ceros indican que ningún valor ocupa esa columna.
enteros
Los números enteros incluyen números naturales positivos y negativos, así como el 0.
Podemos darlos por sentado, pero los antiguos matemáticos desconfiaban profundamente
de la idea de los números negativos. Pero cuando restas 5 de 3, obtienes -2. Esto es útil
especialmente cuando se trata de finanzas donde medimos ganancias y pérdidas. En 628
d. C., un matemático indio llamado Brahmagupta demostró por qué los números negativos
eran necesarios para que la aritmética progresara con la fórmula cuadrática y, por lo
tanto, se aceptaron los números enteros.
Numeros racionales
Cualquier número que puedas expresar como una fracción, como 2/3, es un número
racional. Esto incluye todos los decimales y enteros finitos, ya que también se pueden
expresar como fracciones, como 687/100 = 6,87 y 2/1 = 2, respectivamente. Se llaman
racionales porque son razones. Los números racionales se consideraron necesarios
rápidamente porque el tiempo, los recursos y otras cantidades no siempre se podían
medir en unidades discretas. La leche no siempre viene en galones. Es posible que
tengamos que medirlo como partes de un galón. Si corro durante 12 minutos, no se me
puede obligar a medir en millas enteras cuando en realidad corrí 9/10 de milla.
Numeros irracionales
Los números irracionales no se pueden expresar como una fracción. Esto incluye el
famoso π, las raíces cuadradas de ciertos números como 2 y el número e de Euler , del
que aprenderemos más adelante. Estos números tienen un número infinito de dígitos
decimales, como 3.141592653589793238462…
Hay una historia interesante detrás de los números irracionales. El matemático griego
Pitágoras creía que todos los números son racionales. Creía esto tan fervientemente que
hizo una religión que rezaba al número 10. “¡Bendícenos, número divino, tú que
engendraste dioses y hombres!” él y sus seguidores rezaban (por qué el “10” era tan
especial, no lo sé). Existe la leyenda de que uno de sus seguidores, Hippasus, demostró
que no todos los números son racionales simplemente demostrando la raíz cuadrada de
2. Esto alteró gravemente el sistema de creencias de Pitágoras, y respondió ahogando a
Hippassus en el mar.
Independientemente, ahora sabemos que no todos los números son racionales.
Numeros reales
Los números reales incluyen tanto números racionales como irracionales. En la práctica,
cuando realiza cualquier trabajo de ciencia de datos, puede tratar cualquier decimal con el
que trabaje como números reales.
Números complejos e imaginarios
Te encuentras con este tipo de número cuando sacas la raíz cuadrada de un número
negativo. Si bien los números imaginarios y complejos tienen relevancia en ciertos tipos
de problemas, en su mayoría nos mantendremos alejados de ellos.
En ciencia de datos, encontrará que la mayoría (si no todo) de su trabajo utilizará
números enteros, números naturales, enteros y números reales. Los números imaginarios
se pueden encontrar en casos de uso más avanzados, como la descomposición de
matrices, que abordaremos en el Capítulo 4.

NÚMEROS COMPLEJOS E IMAGINARIOS


Si desea aprender sobre los números imaginarios, hay una gran lista de reproducción Los
números imaginarios son reales en YouTube (Imaginary Numbers Are Real [Part 1:
Introduction] - YouTube).

Orden de operaciones
Con suerte, está familiarizado con el orden de las operaciones, que es el orden en que
resuelve cada parte de una expresión matemática. Como un breve repaso, recuerda que
evalúas los componentes entre paréntesis, seguidos de los exponentes, luego la
multiplicación, la división, la suma y la resta. Puede recordar el orden de las operaciones
mediante el recurso mnemotécnico PEMDAS (Por favor, disculpe a mi querida tía Sally),
que corresponde al orden de paréntesis, exponentes, multiplicación, división, suma y
resta.
Tomemos por ejemplo esta expresión:

Primero evaluamos los paréntesis (3 + 2), que es igual a 5:

A continuación resolvemos el exponente, que podemos ver está elevando al cuadrado ese
5 que acabamos de sumar. Eso es 25:

A continuación tenemos la multiplicación y la división. El orden de estos dos es


intercambiable ya que la división también es multiplicación (usando fracciones).

Prosigamos y multipliquemos el 2 con el , dando :

A continuación realizaremos la división, dividiendo 50 entre 5, lo que nos dará 10:


10 - 4
Y por último, realizamos cualquier suma y resta. Por supuesto, 10 - 4 nos dará 6:
10 - 4 = 6
Efectivamente, si tuviéramos que expresar esto en Python imprimiríamos un valor de 6.0
como se muestra en el Ejemplo 1-1.
Ejemplo 1-1. Resolver una expresión en Python
my_value = 2 * (3 + 2)**2 / 5 - 4

print(my_value) # prints 6.0


Esto puede ser elemental, pero sigue siendo crítico. En el código, incluso si obtiene el
resultado correcto sin ellos, es una buena práctica usar paréntesis generosamente en
expresiones complejas para establecer el control del orden de evaluación.
Aquí agrupo la parte fraccionaria de mi expresión entre paréntesis, lo que ayuda a
diferenciarla del resto de la expresión en el ejemplo 1-2.
Ejemplo 1-2. Haciendo uso de paréntesis para mayor claridad en Python
my_value = 2 * ((3 + 2)**2 / 5) – 4
print(my_value) # prints 6.0

Si bien ambos ejemplos son técnicamente correctos, el último es más claro para nosotros,
los humanos que se confunden fácilmente. Si usted u otra persona realiza cambios en su
código, los paréntesis brindan una referencia fácil del orden de operación a medida que
realiza los cambios. Esto proporciona una línea de defensa contra los cambios de código
para evitar errores también.

Variables
Si ha realizado algunos scripts con Python u otro lenguaje de programación, tiene una
idea de lo que es una variable. En matemáticas, una variable es un marcador de posición
con nombre para un número no especificado o desconocido.
Puede tener una variable x que represente cualquier número real y puede multiplicar esa
variable sin declarar cuál es. En el Ejemplo 1-3, tomamos una entrada variable x de un
usuario y la multiplicamos por 3.
Ejemplo 1-3. Una variable en Python que luego se multiplica
x = int(input("Please input a number\n"))
product = 3 * x
print(product)
Hay algunos nombres de variables estándar para ciertos tipos de variables. Si estos
nombres de variables y conceptos no le son familiares, ¡no se preocupe! Pero algunos
lectores pueden reconocer que usamos theta θ para denotar ángulos y beta β para un
parámetro en una regresión lineal. Los símbolos griegos crean nombres de variables
incómodos en Python, por lo que probablemente nombraríamos a estas variables theta y
beta en Python como se muestra en el Ejemplo 1-4.
Ejemplo 1-4. Nombres de variables griegas en Python
beta = 1.75
theta = 30.0
Tenga en cuenta también que los nombres de las variables se pueden subíndice para que
se puedan usar varias instancias de un nombre de variable. Para propósitos prácticos,
simplemente trátelos como variables separadas. Si encuentra variables x 1, x2 y x3,
simplemente trátelas como tres variables separadas como se muestra en el Ejemplo 1-5.
Ejemplo 1-5. Expresando variables con subíndice en Python
x1 = 3 # or x_1 = 3
x2 = 10 # or x_2 = 10
x3 = 44 # or x_3 = 44

Funciones
Las funciones son expresiones que definen relaciones entre dos o más variables. Más
específicamente, una función toma variables de entrada (también llamadas variables de
dominio o variables independientes ), las inserta en una expresión y luego da como
resultado una variable de salida (también llamada variable dependiente ).
Tome esta función lineal simple:
y=2x+1

Para cualquier valor de x dado, resolvemos la expresión con esa x para encontrar y.
Cuando x = 1, entonces y = 3. Cuando x = 2, y = 5. Cuando x = 3, y = 7 y así
sucesivamente, como se muestra en la Tabla 1-1.
Diferentes valores para y = 2x +
1
X 2x + 1 y
0 2(0) + 1 1
1 2(1) + 1 3
2 2(2) + 1 5
3 2(3) + 1 7
Las funciones son útiles porque modelan una relación predecible entre variables, como
cuántos incendios podemos esperar a una temperatura x. Usaremos funciones lineales
para realizar regresiones lineales en el Capítulo 5.
Otra convención que puede ver para la variable dependiente y es etiquetarla
explícitamente como una función de x, como f(x). Entonces, en lugar de expresar una
función como y = 2 x + 1, también podemos expresarla como:
f(x)=2x+1
El ejemplo 1-6 muestra cómo podemos declarar una función matemática e iterarla en
Python.
Ejemplo 1-6. Declarar una función lineal en Python
def f(x):
return 2 * x + 1
x_values = [0, 1, 2, 3]
for x in x_values:
y = f(x)
print(y)
Cuando se trata de números reales, una característica sutil pero importante de las
funciones es que a menudo tienen un número infinito de valores de x y valores de y
resultantes. Pregúntese esto: ¿cuántos valores de x podemos poner a través de la función
y = 2 x + 1 ? En lugar de solo 0, 1, 2, 3.. ¿por qué no 0, 0,5, 1, 1,5, 2, 2,5, 3 como se
muestra en la Tabla 1-2 ?
Tabla 1-2. Diferentes valores para y = 2x + 1
X 2x + 1 y
0.0 2(0) + 1 1

0.5 2(.5) + 1 2

1.0 2(1) + 1 3

1.5 2(1.5) + 1 4

2.0 2(2) + 1 5

2.5 2(2.5) + 1 6

3.0 2(3) + 1 7

¿O por qué no hacer cuartos de paso para x ? ¿O 1/10 de un paso? Podemos hacer que
estos pasos sean infinitamente pequeños, demostrando efectivamente que y = 2 x + 1
es una función continua, donde para cada valor posible de x hay un valor para y. Esto nos
lleva muy bien a visualizar nuestra función como una línea, como se muestra en la Figura
1-1.
Figura 1-1. Gráfico para la función y = 2x + 1

Cuando graficamos en un plano bidimensional con dos rectas numéricas (una para cada
variable) se conoce como plano cartesiano, plano xy o plano de coordenadas. Trazamos
un valor x dado y luego buscamos el valor y correspondiente, y trazamos las
intersecciones como una línea. Tenga en cuenta que debido a la naturaleza de los
números reales (o decimales, si lo prefiere), hay una cantidad infinita de valores de x. Es
por eso que cuando trazamos la función f ( x ) obtenemos una línea continua sin
interrupciones. Hay un número infinito de puntos en esa línea, o cualquier parte de esa
línea.
Si desea trazar esto usando Python, hay varias bibliotecas de gráficos desde Plotly hasta
matplotlib. A lo largo de este libro usaremos SymPy para realizar muchas tareas, y la
primera que usaremos es trazar una función. SymPy usa matplotlib, así que asegúrese de
tener ese paquete instalado. De lo contrario, imprimirá un gráfico feo basado en texto en
su consola. Después de eso, simplemente declare la variable x en SymPy usando
símbolos(), declare su función y luego trácela como se muestra en el Ejemplo 1-7 y la
Figura 1-2.
Ejemplo 1-7. Trazar una función lineal en Python usando SymPy
from sympy import *
x = symbols('x')
f = 2*x + 1
plot(f)

Figura 1-2. Usando SymPy para graficar una función lineal

El ejemplo 1-8 y la figura 1-3 son otro ejemplo que muestra la función f (x) = x2 + 1.
Ejemplo 1-8. Graficar una función exponencial
from sympy import *
x = symbols('x')
f = x**2 + 1
plot(f)
Tenga en cuenta que en la figura 1-3 no obtenemos una línea recta, sino una curva suave
y simétrica conocida como parábola. Es continuo pero no lineal, ya que no produce
valores en línea recta. Funciones con curvas como esta son matemáticamente más
difíciles de trabajar, pero aprenderemos algunos trucos para que no sea tan malo.

FUNCIONES CURVILÍNEAS
Cuando una función es continua pero con curvas, en lugar de lineal y recta, la llamamos
función curvilínea.

Figura 1-3. Usando SymPy para graficar una función exponencial

Tenga en cuenta que las funciones utilizan múltiples variables de entrada, no solo una.
Por ejemplo, podemos tener una función con variables independientes x e y. Tenga en
cuenta que y no es dependiente como en los ejemplos anteriores.
f( x, y ) = 2x + 3y
Como tenemos dos variables independientes ( x e y ) y una variable dependiente (la
salida de f ( x, y )), necesitamos trazar este gráfico en tres dimensiones para producir un
plano de valores en lugar de una línea, como se muestra en Ejemplo 1-9 y Figura 1-4.
Ejemplo 1-9. Declarar una función con dos variables independientes en Python
from sympy import *
from sympy.plotting import plot3d
x, y = symbols('x y')
f = 2*x + 3*y
plot3d(f)
Figura 1-4. Usando SymPy para graficar una función tridimensional

No importa cuántas variables independientes tenga, su función generalmente generará


solo una variable dependiente. Cuando resuelva múltiples variables dependientes,
probablemente usará funciones separadas para cada una.

sumatorias
Prometí no usar ecuaciones llenas de símbolos griegos en este libro. Sin embargo, hay
uno que es tan común y útil que sería negligente no cubrirlo. Una suma se expresa como
sigma Σ y suma elementos.
Por ejemplo, si quiero iterar los números del 1 al 5, multiplicar cada uno por 2 y sumarlos,
así es como lo expresaría usando una suma. El ejemplo 1-10 muestra cómo ejecutar esto
en Python.

Ejemplo 1-10. Realizando una suma en Python


summation = sum(2*i for i in range(1,6))
print(summation)

Tenga en cuenta que i es una variable de marcador de posición que representa cada valor
de índice consecutivo que estamos iterando en el bucle, que multiplicamos por 2 y luego
sumamos todos juntos. Cuando está iterando datos, puede ver variables como x i que
indican un elemento en una colección en el índice i.

LA FUNCIÓN RANGE()
Recuerde que la función range() en Python es exclusiva al final, lo que significa que si
invoca range(1,4) iterará los números 1, 2 y 3. Excluye el 4 como límite superior.
También es común ver que n representa la cantidad de elementos en una colección,
como la cantidad de registros en un conjunto de datos. Aquí hay uno de esos ejemplos
donde iteramos una colección de números de tamaño n, multiplicamos cada uno por 10 y
los sumamos:
En el Ejemplo 1-11 usamos Python para ejecutar esta expresión en una colección de
cuatro números. Tenga en cuenta que en Python (y la mayoría de los lenguajes de
programación en general) normalmente hacemos referencia a elementos que comienzan
en el índice 0, mientras que en matemáticas comenzamos en el índice 1. Por lo tanto,
cambiamos en consecuencia en nuestra iteración comenzando en 0 en nuestro RANGE().
Ejemplo 1-11. Suma de elementos en Python
x = [1, 4, 6, 2]
n = len(x)
summation = sum(10*x[i] for i in range(0,n))
print(summation)

Esa es la esencia de la suma. En pocas palabras, una suma Σ dice, "suma un montón de
cosas juntas", y usa un índice i y un valor máximo n para expresar cada iteración que
alimenta la suma. Los veremos a lo largo de este libro.

También podría gustarte