Skip to content

Latest commit

 

History

History
192 lines (145 loc) · 9.21 KB

File metadata and controls

192 lines (145 loc) · 9.21 KB

Week 06 & 07

Temas vistos en los ejercicios de esta semana:

  • Numpy
  • functions

Clase asincrónica

Ejercicio 1 - Intermedio

Descripcion

Realiza una función llamada intermedio(a, b) que a partir de dos números, devuelva su punto intermedio. Cuando la tengas comprueba que el punto intermedio entre -12 y 24 es 6.

Solucion

def intermedio(a, b):
    return (a+b)/2
intermedio(-12, 24)

Ejercicio 2 - Suma n enteros

Descripcion

Definir una función que permita sumar los n primeros números enteros. Probar la función para diferente valores.

Solucion

def sumacontador(n):
    count = 0
    for i in range(n):
        count += i
    return count
print(sumacontador(10))

Ejercicio 3 - Suma recursiva

Descripcion

Escribir la función del Ejercicio 1 en forma recursiva, para que sume los n primeros números enteros.

Solucion

def sumarecursiva(n):
  if n == 0:
    return 0
  else:
    return n + sumarecursiva(n-1)

sumarecursiva(10)

Ejercicio 4 -

Descripcion

Supongamos que tenemos una lista de números enteros, y queremos encontrar todas las subsecuencias de la lista que sumen un número objetivo dado. Para hacerlo, vamos a crear una función que tome como argumentos la lista de números y el número objetivo, y devuelva una lista con todas las subsecuencias que suman el número objetivo.

Ayuda: Por ejemplo, si le damos a tu programa la lista de números [1, 2, 3, 4, 5] y queremos encontrar todas las subsecuencias que suman 7 (número objetivo dado), la función debería devolver las siguientes listas [2, 5], [3, 4], [1, 2, 4]. Solución

Homework

Ejercicio 1 - Ones, zeros, itemsize, size

Descripcion

  • Crear un par de arrays de 3 x 3 y de 256 x 256 con valores enteros usando ones and zeros, respectivamente.
  • Leer la documentación de los métodos numpy para ndarrays itemsize y size – numpy.ndarray.itemsize, numpy.ndarray.size.
  • Para los arrays creados antes, qué información me da itemsize? Y size? En qué unidades está cada uno?
  • Sabiendo esto, calcular el espacio que ocupan en memoria, sabiendo que 1024 bytes = 1 kilobyte; 1024 kilobytes = 1 megabyte; 1024 megabytes = [...] etc. Expresar en la unidad más conveniente y razonable.

Solución

Ejercicio 2 - ndarrrays: arange, full, where, reshape

Descripcion


a. Crear un array de 1D con los números del 0 al 9
b. Crear un array de 3x3 booleano con el valor True
c. Extraer todos los números impares en el array creado en el punto a.
d. Substituir todos los números imapares en el array creado en el punto a por -1.
e. Convierta el array creado en el punto a. para un array de 2D con 2 lineas.

Solución

Ejercicio 3 - dtypes

Descripcion

  • Leer la documentación sobre las capacidades de los distintos tipos (dtypes) numéricos que ofrece numpy
  • Con esta información crear arrays de 256x256 usando np.ones (o zeros) usando los siguientes dtypes:
    • uint8
    • uint16
    • uint32
    • uint64
  • Cuanto ocupan en memoria estos arrays? Expresar en la unidad más conveniente y razonable.
  • Para cada uno de estos arrays, asignar estos valores al primer elemento de cada array (ej array[0][0]) y evaluar el array.
  • Qué pasa en cada caso? Por qué?
    • 255, 256, 32535, 32536, 4294967295, 4294967296, 18446744073709551615, 18446744073709551616

Solución

Ejercicio 4 - Tablas multiplicar

Descripcion


a. Crear un array conteniendo todos los números pares del 0 al 1000.
b. Crear un array de (10, 10) conteniendo las tablas de multiplicar. Es decir, la primer fila es la tabla del 1, la segunda la del 2, etc.

Solución

Ejercicio 5 - Tanques australianos

Descripcion

Se quiere calcular la circunferencia, la superficie y el volumen de varios tanques australianos en diferentes campos:
a. Tanque campo 1: radio = 3 m, altura = 1 m
b. Tanque campo 2: radio = 4 m, altura = 1.5 m
c. Tanque campo 3: radio = 2.6 m, altura = 1.2 m

Escribir una o más funciones para que podamos hacer estos cálculos. Imprimí para cada caso los resultados obtenidos.

Solución

Ejercicio 6 -

Descripcion

Escribir una función que reciba una lista como entrada y que devuelva 0 si la lista está vacia o su longitud en caso contrario. Proba tu función dandole diferentes listas como inputs. Podes verificar que tu función devuelva el valor correcto comparandola con la función primitiva de Python len().

def longitud(lista):
  if lista == []:          # me fijo si la lista está vacia
    return 0
  else:
    # si la lista no está vacía, la función devuelve 1 
    # más la longitud de la lista restante (es decir, la lista sin el primer elemento)
    return 1 + longitud(lista[1:])

Ejercicio 7 - Listas pares e impares

Descripcion

Realiza una función separar(lista) que tome una lista de números enteros y devuelva dos listas ordenadas. La primera con los números pares y la segunda con los números impares.

Solución

Ejercicio 8 - Bombones

Descripcion

Juan quiere comprar todos los bombones posibles con el dinero que tiene. Crear una función para calcular el número de bombones que puede comprar y el cambio (vuelto) que va a recibir. La función tiene que poder calcular esto para distintos montos de dinero y distinto precio de los bombones. Inventar ejemplos y probar la función creada.

Solución

Ejercicio 9 - Estimar pi

Descripcion

En este ejercicio vamos a estimar π generando puntos al azar (esto es un ejemplo del método de Montecarlo). La idea consiste en generar puntos al azar (todos con valores de x e y ubicados entre 0 y 1), y ver cuántos de ellos están contenidos dentro del círculo de radio 1 alrededor del punto central (0, 0).


a) Usando la función de Numpy numpy.random.rand(), generá un array de números al azar de tamaño (10000, 2), que representa 10000 puntos generados al azar.
b) Usando el array del inciso anterior, contá la cantidad de puntos que caen dentro del cículo (es decir, contá cuántos cumplen que x2 + y2 < 1). Luego estimá el valor de π dividiendo ese valor por la cantidad de puntos (o sea, en este caso 10000), y multiplicando el resultado por 4. ¿Dió similar al valor conocido de π?
c) Creá una función estimar_pi(n) que devuelva una estimación del valor de π como la que hiciste antes pero usando n puntos, donde n es el parámetro de entrada.

Solución

Ejercicio 10 - Ejercicio con datos antropométricos

Descripcion

ANSUR I

Los datos de la Encuesta Antropométrica del Personal del Ejército de EE. UU. (ANSUR I) se publicaron en 1988. Hasta 2012, eran el conjunto de datos más completo disponible públicamente sobre el tamaño y la forma del cuerpo. Incluyen más de 140 medidas para casi 4000 militares estadounidenses adultos (1774 hombres y 2208 mujeres). Debido a la calidad de los datos, y al bajo costo, se utilizan ampliamente en todo el mundo en la práctica del diseño (y en análisis de datos!). Sin embargo (CUIDADO!) no son representativos de ninguna población humana en particular, ni siquiera de la población del ejército de EE. UU. Como resultado, los diseños y estándares basados en estos datos no se van a adaptar (no aplican) a otras poblacines humanas.

Dicho esto, son un recurso útil para estudiar antropometría y construir modelos de síntesis de datos.

Las definiciones de cada medida y que significan están descriptas en este Reporte. Para ahorrarles un poco la lectura, prestar atención a que las alturas (stature) están en milímetros y los pesos (weight) en hectogramos (1 hectogramo = 0.1 Kg). Fuente: ANSUR I Data at Penn State

Link directo para los archivos:

ansurMen.csv

ansurWomen.csv

Explore los datos ANSUR I para mujeres y hombres Cree funciones para poder trabajar con los dos conjuntos de datos de la misma forma para:
a. Leer los datos con NumPy y armar un nuevo array que contenga solamente los pesos y alturas.
b. Determinar cuáles son los valores máximo, mínimo y promedio de los pesos y alturas para hombres y mujeres por separado.
c. Estudie si hay correlación entre el peso y la altura para cada conjunto de datos.

Calcular la relación entre altura del torso (sitting height) y longitud de las piernas (se puede calcular como la resta de la altura del torso y la altura total.
a. ¿Cómo es ese cociente?
b. ¿Que valores minimo, maximo, promedio, desvio tiene?
c. ¿Hay correlación entre los dos valores (longitud torso vs longitud de las piernas) para hombres y mujeres?

[Solución](./Weeks/Week06

Ejercicio 11 - Sort pesos y alturas

Descripcion

Ordenar los datos por peso (o altura) y mantener los pares peso-altura de cada persona, sin hacer un array estructurado, y usando argsort().

# altura en metros de personas
alturas = [1.73, 1.68, 1.71, 1.89, 1.79, 1.76, 1.67]
# peso en Kg de personas
pesos = [65.4, 59.2, 63.6, 88.4, 68.7, 89.7, 73.2]

Solucion