Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
En Python, hay diferentes tipos de datos: cadena(string), entero(integer) y flotante(float). Todos estos
tipos de datos pueden estar contenidos en una tupla de la siguiente manera:
str int float
“tipo de cambio” 100 3.35
Indexación
Se puede acceder a cada elemento de una tupla a través de un índice. La siguiente tabla representa la
relación entre el índice y los elementos en la tupla. Cada elemento se puede obtener por el nombre de
la tupla seguido de un corchete con el número de índice:
Concatenación de tuplas
Podemos concatenar o combinar tuplas utilizando el signo +:
# Concatenar dos tuplas
tupla2=tupla1+ (“exportaciones”,”importaciones”)
tupla2
('tipo de cambio', 100, 3.35, 'exportaciones', 'importaciones')
Podemos cortar tuplas obteniendo múltiples valores como lo demuestra la siguiente figura:
tupla2[3:5]
(‘exportaciones’, ‘importaciones’)
tupla2[1:4]
(100, 3.35, ‘exportaciones’)
Podemos ordenar los valores en una tupla y guardarla en una tupla nueva con el comando sorted:
#Ordenar la tupla
tipo_de_cambio_ordenado=sorted(tipo_de_cambio)
tipo_de_cambio_ordenado
[3.27, 3.29, 3.3, 3.32, 3.36]
Tupla anidada
Una tupla puede contener otra tupla así como otros tipos de datos más complejos. Este proceso se
llama 'anidamiento'. Considera la siguiente tupla con varios elementos:
Cada elemento de la tupla, incluidas otras tuplas, se puede obtener a través de un índice como se
muestra en la figura:
0 1 2 3
PBI[3]
(“exportaciones”,”importaciones”)
0 1
PBI[3][0] PBI[3][1]
0 Elemento 1
1 Elemento 2
2 Elemento 3
Para crear una lista, escríbala entre corchetes [ ], con su contenido dentro del paréntesis y separados
por comas.
#Crear una lista
Balanza_de_pagos=[“balanza en cuenta corriente”, ”balanza de capitales”]
Balanza_de_pagos
['balanza en cuenta corriente', 'balanza de capitales']
Al igual que con la tuplas podemos imprimir sus elementos llamando a sus índices:
Balanza_de_pagos[0]
'balanza en cuenta corriente'
Balanza_de_pagos[1]
'balanza de capitales'
Balanza_de_pagos[-2]
'balanza en cuenta corriente'
Balanza_de_pagos[-1]
Contenido
'balanzadedelacapitales'
lista
Las listas pueden contener cadenas, flotadores y enteros. Podemos anidar otras listas, y también
podemos anidar tuplas y otras estructuras de datos. Las mismas convenciones de indexación aplican
para el anidamiento:
#Muestra de lista
Balanza_de_pagos=[(“balanza comercial”, ”balanza de servicios”, ”renta de factores”, “balanza de
transferencias corrientes”), “balanza de capitales”]
Balanza_de_pagos
[(‘balanza comercial’, ‘balanza de servicios’, ‘renta de factores’, ‘balanza de transferencias
corrientes’), ‘balanza de capitales’]
Operaciones con listas
También podemos usar el método “extend” para agregar nuevos elementos a la lista
Otro método similar es “append”. Si aplicamos agregar en lugar de “extend”, agregamos solo un
elemento a la lista
Como podemos ver, si aplicamos el método extend obtenemos elementos libres; a diferencia de
cuando aplicamos el método append y obtenemos elementos como una nueva lista.
Además podemos cambiar las listas ya que son mutables, por ejemplo:
Podemos convertir una cadena a una lista usando “split”, este traduce cada grupo de caracteres
separados por un espacio en un elemento en una lista:
# Dividir la cadena, el valor predeterminado es por espacio
PBI=“C I G X M”.split()
PBI
['C', 'I', 'G', 'X', 'M']
SETS (CONJUNTOS)
Contenido de un set
Un set(conjunto) es una colección única de objetos en Python. Puedes denotarlo con un corchete {}.
Python eliminará automáticamente los elementos duplicados:
#Crear un set
Macroeconomía = { “inflación”, “tasa de interés”, “desempleo”, “inflación”, “tipo de cambio”}
Macroeconomía
{ “inflación”, “tasa de interés”, “desempleo”, “tipo de cambio”}
BP
BCC
‘BC' ‘BS’ ‘BK’
'BT' 'RF'
Como vemos en el gráfico de los sets no hay ningún elemento que pertenezca a BCC pero no a BP,
por lo que su diferencia es un conjunto vacío “ set() “
Key 1 Value 1
Key 2 Value 2
Key 3 Value 3
... ...
Como una lista, un diccionario contiene una secuencia de elementos separados por comas. Cada
elemento está representado por una clave y su valor correspondiente. Los diccionarios se crean con
dos llaves que contienen claves y valores separados por dos puntos. Para cada clave, solo puede
haber un único valor, sin embargo, varias claves pueden tener el mismo valor. Las claves solo pueden
ser cadenas, números o tuplas, pero los valores pueden ser cualquier tipo de datos. Un diccionario
vacío sin elementos se escribe con solo dos llaves, como este "{}".
#Muestra de diccionario con las variables del PBI y su porcentaje respecto al PBI del Perú 2018
PBI = {“C”:64.7, “I”:17, “G”:16.3, “X”:25,”M”:23}
PBI
{'C': 64.7, 'I': 17, 'G': 16.3, 'X': 25, 'M': 23}
Es útil visualizar el diccionario como una tabla, como en la siguiente tabla. La primera columna
representa las claves, la segunda columna representa los valores.
KEY VALUE
“C” 64.7
“I” 17
“G” 16.3
“X” 25
“M” 23
Igual ==
No es igual !=
Mayor que >
Menor que <
Mayor o igual que >=
Menor o igual que <=
Asignemos a “a” un valor de 5. Use el operador de igualdad indicado con dos signos == iguales para
determinar si dos valores son iguales. El siguiente caso compara la variable “a” con 6.
#Condición igual
a=5
a==6
False
La prueba de desigualdad usa un signo de exclamación que precede al signo de igualdad, si dos
operandos no son iguales, entonces la condición se vuelve verdadera. Por ejemplo, la siguiente
condición producirá True siempre que el valor de i no sea igual a 6:
#Signo de desigualdad
i=2
i!=6
True
También podemos usar estos operadores con cadenas
Ramificación
La ramificación nos permite ejecutar diferentes declaraciones para diferentes entradas. Es útil pensar
en la declaración “if” como una habitación cerrada, si la declaración es verdadera podemos ingresar a
la sala y su programa ejecutará algunas tareas predefinidas, pero si la declaración es Falsa, el
programa ignorará la tarea. Utilice las declaraciones de condición aprendidas anteriormente, ya que las
condiciones deben verificarse en la instrucción if. La sintaxis es tan simple como una declaración de
condición:, que contiene una palabra if, cualquier declaración de condición y dos puntos al final.
Comience sus tareas que deben ejecutarse bajo esta condición en una nueva línea con una sangría.
Las líneas de código después de los dos puntos y con una sangría solo se ejecutarán cuando la
sentencia if sea verdadera. Las tareas terminarán cuando la línea de código no contenga la sangría.
Operadores lógicos
A veces desea verificar más de una condición a la vez. Por ejemplo, es posible que desee verificar si
una condición y otra condición son verdaderas. Los operadores lógicos le permiten combinar o
modificar condiciones.
y (and)
o (or)
no (!)
Estos operadores se resumen para dos variables usando las siguientes tablas de verdad:
A B A&B A B A or B
False False False False False False
False True False False True True
True False False True False True
True True True True True True
A A!
False True
True False
La declaración "y" solo es verdadera cuando ambas condiciones son verdaderas. La declaración "o" es
verdadera si una condición es verdadera. La declaración "no" produce el valor de verdad opuesto.
Los bloques de funciones comienzan “def” seguidos del nombre de la función y los paréntesis
().
Hay parámetros de entrada o argumentos que se deben colocar dentro de estos paréntesis.
También puede definir parámetros dentro de estos paréntesis.
Hay un cuerpo dentro de cada función que comienza con dos puntos (:) y tiene sangría.
También puede colocar la documentación delante del cuerpo.
La declaración de retorno sale de una función, opcionalmente devolviendo un valor
Un ejemplo de una función que multiplica los parámetros “a” y”b”
# Podemos importar la biblioteca o una dependencia como pandas usando el siguiente comando.
import pandas as pd
Ahora tenemos acceso a un gran número de clases y funciones pre-construidas como read_csv(),
Series(), DataFrame, values, etc. Esto supone que la biblioteca está instalada. En nuestro entorno de
laboratorio, todas las bibliotecas necesarias están instalados.
Ahora digamos que nos gustaría cargar un archivo Excel utilizando la función pd.read_excel
# Importamos la biblioteca pandas
import pandas as pd
# Cargamos un archivo Excel almacenado en el equipo. La variable arch_exc1 almacena la ruta del
archivo
arch_exc1="PBI POR SECTORES.xlsx"
# Ahora almacenaremos los datos con el nombre df como la abreviatura de dataframe (marco de
datos)
df=pd.read_excel(arch_exc1)
# El comando head nos devolverá las primeras 5 filas del marco de datos. Aunque también
podemos incluir un número en los paréntesis para indicar el número de filas que queremos mostrar.
df.head()
Año Agropecuario Pesca ... Comercio Servicios PBI
0 2014 25027.696036 1762.067826 ... 52192.745952 227646.948870 467376.448798
1 2015 25893.986531 2041.675707 ... 54216.598319 236957.188935 482676.378219
2 2016 26583.878106 1835.705442 ... 55198.885012 246497.737959 502190.580507
3 2017 27277.218087 1921.352686 ... 55767.047957 254635.062453 514618.214873
4 2018 29335.385955 2684.715322 ... 57243.356379 265843.265334 535171.357857
[5 rows x 10 columns]
df.head(1)
Año Agropecuario Pesca ... Comercio Servicios PBI
0 2014 25027.696036 1762.067826 ... 52192.745952 227646.94887 467376.448798
[1 rows x 10 columns]
Marco de datos con diccionarios
Un marco de datos se compone de filas y columnas. Podemos crear un marco de datos a partir de un
diccionario. Las claves (keys) corresponden a las etiquetas de columna. Los valores (values) son listas
correspondientes a las filas. Luego, el diccionario se convierte en un marco de datos utilizando la
función DataFrame.
# Creamos un diccionario
PBI_SECTORES={"Año":[2016,2017,2018], "Sectores primarios":[111864,115290,119058],
"Sectores no primarios":[390327,399328,416113],"PBI":[502191,514618,535171]}
# Convertimos el diccionario a un marco de datos con la función DataFrame
PBI_SECTORES_df=pd.DataFrame(PBI_SECTORES)
PBI_SECTORES_df
Año Sectores primarios Sectores no primarios PBI
0 2016 111864 390327 502191
1 2017 115290 399328 514618
2 2018 119058 416113 535171
# Podemos crear un nuevo marco de datos que consta de una columna. Esxribimos el nombre del
marco de datos y el nombre del encabezado de columna incluida en dobles corchetes. El resultado
es un nuevo marco de datos compuesto por la columna indicada.
x=PBI_SECTORES_df[["PBI"]]
x
PBI
0 502191
1 514618
2 535171
# Podemos hacer lo mismo para varias columnas. El resultado es un nuevo marco de datos
compuesto por las columnas especificadas.
y=PBI_SECTORES_df[["Sectores primarios","Sectores no primarios"]]
y
Sectores primarios Sectores no primarios
0 111864 390327
1 115290 399328
2 119058 416113
# Para acceder a los elementos utilizamos el método iloc. Puedes acceder a la 2° fila y 1° columna de
la siguiente manera:
print("El PBI real peruano de los sectores primarios en el año 2018 fue:",
PBI_SECTORES_df.iloc[2,1], "millones de soles" )
El PBI real peruano de los sectores primarios en el año 2018 fue: 119058 millones de soles
# Otra forma de acceder a los elementos es mencionar el número de la fila y el nombre de la columna.
Pero esta avez utilizaremos el método loc
print("En el año 2016 PBI real del Perú ascendió a:", PBI_SECTORES_df.loc[0,"PBI"],"millones de
soles")
En el año 2016 PBI real del Perú ascendió a: 502191 millones de soles
# También puede dividir los marcos de datos y asignar los valores a un nuevo marco de datos.
Asignamos las dos últimas filas y las tres primeras columnas a la variable z. El resultado es un marco
de datos compuesto por las filas y columnas seleccionadas.
Sect_2años=PBI_SECTORES_df.iloc[1:3,0:3]
Sect_2años
Año Sectores primarios Sectores no primarios
1 2017 115290 399328
2 2018 119058 416113
# También puede dividir los marcos de datos y asignar los valores a un nuevo marco de datos
utilizando los nombres de la columna. El código asigna las últimas 2 filas y las tres primeras columnas
desde “Año” hasta “Sectores no primarios”. El resultado es un nuevo marco de datos con los valores
correspondientes.
Sect_2prim_años=PBI_SECTORES_df.loc[1:3,"Año":"Sectores no primarios"]
Sect_2prim_años
Año Sectores primarios Sectores no primarios
1 2017 115290 399328
2 2018 119058 416113
INTRODUCCIÓN A CLASES Y OBJETOS
Creando una clase
La primera parte de crear una clase es darle un nombre: Aquí, crearemos un círculo. Necesitamos
determinar todos los datos que conforman esa clase, y llamamos a eso un atributo. Considere este
paso como crear una impresión azul que usaremos para crear objetos. En la figura adjunta vemos el
círculo (la clase) que tiene el radio y el color como atributo. Usemos los ejemplos visuales de esta
forma antes de que lleguemos al código, ya que esto te ayudará a acostumbrarte al vocabulario.
Class Circle
Atributos: radio, color
Color
radio
Círculo amarillo
Círculo rojo
Métodos
Los métodos te dan una manera de cambiar o interactuar con el objeto; Son funciones que interactúan
con los objetos. Por ejemplo, digamos que nos gustaría aumentar el radio en una cantidad específica
de un círculo. Podemos crear un método llamado add_radio (r) que aumenta el radio en r. Esto se
muestra en la siguiente figura, donde después de aplicar el método al "objeto de círculo naranja", el
radio del objeto aumenta en consecuencia. La notación de "punto" significa aplicar el método al objeto,
que esencialmente es aplicar una función a la información en el objeto.
2 4
.add_radio(2)
# Importar la biblioteca
import matplotlib.pyplot as plt
El primer paso para crear su propia clase es usar la palabra clave “class”, luego el nombre de la clase
“círculo” . En este curso, el padre de la clase siempre será “object”.
El siguiente paso es un método especial llamado constructor __init__, que se utiliza para inicializar el
objeto. Las entradas son atributos de datos. El término self contiene todos los atributos del conjunto.
Por ejemplo, self.color da el valor del color de atributo y self.radius le dará el radio del objeto. También
tenemos el método add_radius () con el parámetro r, el método agrega el valor de r al radio del
atributo. Para acceder al radio usamos la sintaxis self.radius.
Multiplicación
Producto dot
El producto dot de las dos matrices numpy m y n viene dado por la suma de los elementos de su
producto
np.dot(m,n)
19
Funciones matemáticas
# En Python el valor de pi está dado por:
np.pi
3.141592653589793
# Crea el siguiente numpy array en radianes
x = np.array([0, np.pi/2 , np.pi])
# Calcula el seno de cada elemento.
y=np.sin(x)
y
array([0.0000000e+00, 1.0000000e+00, 1.2246468e-16])
Linspace
Una función útil para trazar funciones matemáticas es el "espacio de líneas". El espacio de líneas
devuelve números espaciados uniformemente en un intervalo específico. Especificamos el punto inicial
de la secuencia y el punto final de la secuencia. El parámetro "num" indica el número de muestras a
generar, en este caso 5:
Podemos usar el espacio de línea de función para generar 100 muestras espaciadas uniformemente
del intervalo 0 a 2π:
Producto dot
También podemos realizar la multiplicación de matrices con los arrays numpy A y B de la siguiente
manera. Teniendo en cuenta que el número de columnas del primer factor debe ser igual al número de
filas del segundo factor.
DEMANDA
INDUSTRIA VBP
INDUSTRIA S FINALES
I II III
I 20 40 30 10 100
II 30 20 90 60 200
III 40 100 60 100 300
VALOR
10 40 120 170
AGREGADO
VBP 100 200 300
X =(I −MCTP)−1 D
Donde:
X=Matriz de producción futura I = Matriz identidad D= Matriz de demanda proyectada
Es decir:
La producción bruta de la industria I será 622.52
La producción bruta de la industria II será 1007.21
La producción bruta de la industria III será 1465.77
MCTP[0:3,0]=X[0]*MCTP[0:3,0]
MCTP[0:3,1]=X[1]*MCTP[0:3,1]
MCTP[0:3,2]=X[2]*MCTP[0:3,2]
MCTP
array([[124.5045045 , 201.44144144, 146.57657658],
[186.75675676, 100.72072072, 439.72972973],
DEMANDAS
INDUSTRIA VBP
INDUSTRIA FINALES
I II III
I 125 201 147 150 623