Está en la página 1de 43

ARREGLOS

UNIDIMENSIONALES

Subtítulo ….
CONTENIDO

1. Objetivos

2. Indice

3. Contenido

4. Bibliografía y Recursos

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 2
OBJETIVOS
◉ Comprender el concepto de arreglos
unidimensionales
◉ Identificar las operaciones básicas sobre los
arreglos unidimensionales (insertar, modificar
datos, lectura y recorrido del arreglo)
◉ Aplicar algoritmos básicos de búsqueda en
arreglos unidimensionales
◉ Desarrollar la solución a un problema que
requiera almacenar datos para posteriores
operaciones cuya solución involucre el uso de
arreglos unidimensionales

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 3
ÍNDICE
◉ Introducción al uso de arreglos
◉ ¿Qué es un arreglo unidimensional?
◉ Introducción a NumPy
◉ Instalación de NumPy
◉ Operaciones con arreglos
◉ Ciclos y arreglos
◉ Ejemplos

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 4
INTRODUCCIÓN AL USO DE
ARREGLOS
◉ En un laboratorio se esta realizando un experimento sobre
un material y una de las pruebas requiere registrar valores
del cambio de temperatura del material cada minuto
durante cinco minutos

◉ ¿Como registraría los valores en Python?


◉ ¿Cuantas veces se requiere hacerlo?
◉ ¿Cómo calcularía un promedio?

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 5
INTRODUCCIÓN AL USO DE
ARREGLOS
◉ ¿Como registraría los valores en Python?
temp1 = int(input("digite la temperatura en el minuto 1")
temp2 = int(input("digite la temperatura en el minuto 2")
temp3 = int(input("digite la temperatura en el minuto 3")
temp4 = int(input("digite la temperatura en el minuto 4")
temp5 = int(input("digite la temperatura en el minuto 5")

◉ ¿Cuantas veces se requiere hacerlo?


Se requiere hacerlo 5 veces

◉ ¿Cómo calcularía un promedio?


Sumando los datos uno por uno y dividiendolos por la cantidad

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 6
INTRODUCCIÓN AL USO DE
ARREGLOS
◉ Problema propuesto: Plantee un ejemplo similar
relacionado con su carrera. Responda las preguntas:

◉ ¿Como almacenaría los valores en Python?


◉ ¿Cuantas veces se requiere hacerlo?
◉ ¿Qué variable estadística de interés se puede estimar a
partir de los datos?

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 7
QUÉ ES UN ARREGLO
UNIDIMENSIONAL
◉ Un arreglo es un conjunto de datos del mismo tipo, que
están referenciados bajo el mismo nombre.

temperaturas (entero)
28 29 30 28 31

días (texto)

Lunes Martes Miércoles Jueves Viernes

respuestas (boolean)

true false false true

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 8
QUÉ ES UN ARREGLO
UNIDIMENSIONAL
◉ Para acceder a un dato especifico en una de las posiciones
de un arreglo se requiere de un índice (0,1,2,3,4) encerrado
entre corchetes []

temperaturas

0 1 2 3 4
28 29 30 28 31

El valor en temperaturas[0] es igual a 28


El valor en temperaturas[4] es igual a 30

◉ Nota: Aunque el tamaño del arreglo es 5 la ultima posición


es 4

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 9
QUÉ ES UN ARREGLO
UNIDIMENSIONAL
◉ Problema propuesto: Escriba el nombre de un arreglo
relacionado con su carrera, escriba algunos datos que
podría llevar el arreglo, identifique algunos valores y los
respectivos índices.

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 10
INTRODUCCIÓN A NUMPY

◉ Numpy es una librería de Python para el manejo de arreglos


◉ Tiene funciones básicas para operar sobre arreglos entre
ellas: zeros, append, insert, delete
◉ Tiene funciones para obtener información o realizar cálculos
a partir de los datos de un arreglo entre ellas: max, min,
cumsum, sort

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 11
INSTALACIÓN DE NUMPY
◉ Linux
-Python3
apt-get install python3-numpy

-Python2
apt-get install python-numpy

◉ Windows
Descargar del siguiente enlace la versión de NumPy que
corresponda a la versión de Python instalada en su
computadora
http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 12
INSTALACIÓN DE NUMPY
Para verificar la instalación de NumPy abra el entorno IDLE de
Python y realice la importación de la librería NumPy por medio
del comando import numpy

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 13
OPERACIONES CON ARREGLOS
◉ NumPy cuenta con funciones que permiten la declaración
de arreglos. A continuación se muestran ejemplos de cada
una de ellas

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 14
OPERACIONES CON ARREGLOS
➢ Declarar un arreglo de 5 posiciones inicializadas a cero

temperaturas = numpy.zeros(5)

temperaturas
0 1 2 3 4
0 0 0 0 0

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 15
OPERACIONES CON ARREGLOS
➢ Declarar un arreglo de 3 valores aleatorios entre 1 y 100

sorteo = numpy.random.randint(1,101,3)

sorteo

0 1 2
3 30 74

Otras funciones de random

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 16
OPERACIONES CON ARREGLOS
➢ Declarar un arreglo con valores predefinidos. Los tipos de
dato pueden ser entero, decimal, cadena de texto, otros

marcas = numpy.array(["Sony","Samsung","LG"])

marcas

0 1 2
Sony Samsung LG

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 17
OPERACIONES CON ARREGLOS
◉ Problema propuesto: ¿Como se declaran el siguiente
arreglo?

temperaturas

28 29 30 28 31

◉ Problema propuesto: Declare un arreglo donde almacene


4 nombres de capitales de Colombia

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 18
OPERACIONES CON ARREGLOS
➢ Obtener el tamaño de un arreglo

temperaturas

0 1 2 3 4
28 29 30 28 31

longitud = temperaturas.size

La cantidad de temperaturas en el arreglo es 5

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 19
OPERACIONES CON ARREGLOS
➢ Modificar o insertar un elemento en la casilla de un arreglo

inventario (origen)
0 1 2 3 4
10 11 12 11 8

inventario[0] = inventario[0]-1
Inventario[4] = 0

inventario (modificado)

0 1 2 3 4
9 11 12 11 0

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 20
OPERACIONES CON ARREGLOS
➢ Insertar un elemento al final de un arreglo

asistentes = numpy.array([])
asistentes = numpy.append(asistentes,["juan"])
asistentes = numpy.append(asistentes,["diana"])
asistentes = numpy.append(asistentes,["lucia"])
asistentes = numpy.append(asistentes,["esteban"])

asistentes

0 1 2 3
juan diana lucia esteban

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 21
OPERACIONES CON ARREGLOS
➢ Insertar un elemento en una posición determinada

tiempos

0 1 2 3
55 58 62 64

tiempos = numpy.insert(tiempos,1,57)

0 1 2 3 4
55 57 58 62 64

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 22
OPERACIONES CON ARREGLOS
➢ Eliminar un elemento en un arreglo

notas

0 1 2 3
3.0 5.0 5.0 4.8

notas = numpy.delete(notas,0)

1 2 3
5.0 5.0 4.8

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 23
OPERACIONES CON ARREGLOS
◉ Problema propuesto: Escriba las instrucciones que
permitan convertir el arreglo origen en el arreglo destino

capitales (origen)

cali medellin pasto bogota

capitales (destino)

cali pasto bogota cartagena

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 24
OPERACIONES CON ARREGLOS
➢ Leer elementos de un arreglo

inventario

0 1 2 3 4
10 11 12 11 8

cantidad_item0 = inventario[0]
La cantidad en la posición 0 de inventario es 10

cantidad_item1 = inventario[1]
La cantidad en la posición 1 de inventario es 11

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 25
OPERACIONES CON ARREGLOS
➢ Para obtener la suma de todos los elementos del arreglo

distancias

0 1 2 3
20 21 20 22

total = numpy.sum(distancias)

La suma de todas la distancias es 83

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 26
OPERACIONES CON ARREGLOS
➢ Para obtener el índice del mayor elemento de un arreglo

puntajes

0 1 2 3 4
20 10 35 40 5

indice_maximo = numpy.argmax(puntajes)
El índice del valor máximo es 3

valor_maximo = puntajes[indice_maximo]
El valor máximo es 40

Función: amax

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 27
OPERACIONES CON ARREGLOS
➢ Para obtener el índice del menor elemento de un arreglo

puntajes

0 1 2 3 4
20 10 35 40 5

indice_minimo = numpy.argmin(puntajes)
El índice del valor mínimo es 4

valor_minimo = puntajes[indice_minimo]
El valor mínimo es 5

Función: amin

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 28
OPERACIONES CON ARREGLOS
➢ Para buscar un elemento dado en un arreglo

marcas

0 1 2
Sony Samsung LG

indice_item = numpy.where(marcas=="Sony")
indice_como_valor = indice_item[0][0]
El índice de la marca Sony es 0

Nota: En caso de haber varias ocurrencias del elemento a


buscar en el arreglo, la función where retorna un vector de
índices

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 29
OPERACIONES CON ARREGLOS
➢ Para buscar un elemento dado en un arreglo

marcas

0 1 2
Sony Samsung LG

indice_item = numpy.where(marcas=="Sony")
indice_como_valor = indice_item[0][0]
El índice de la marca Sony es 0

Nota: En caso de no haber ocurrencias del elemento a buscar


en el arreglo, la función where retorna un arreglo vacío
(longitud = 0)

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 30
OPERACIONES CON ARREGLOS
◉ Problema propuesto: A partir del arreglo presentado
indique las instrucciones necesarias para obtener los
valores solicitados
capitales

cali medellin pasto bogota


habitantes

2’369.821 2’464.322 439.993 7’878.783

capital mas poblada


capital menos poblada
total de habitantes
Proyecciones de población DANE

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 31
ARREGLOS Y CICLOS
◉ Problema: Realizar una aplicación que imprima en pantalla
la distancia entre Cali y al menos 2 ciudades. Emplee un
arreglo para almacenar las ciudades y otro para almacenar
las distancias. Emplee un ciclo para iterar sobre los
elementos de los arreglos y realizar la impresión

Distancia entre ciudades

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 32
ARREGLOS Y CICLOS
◉ Solución
Recorrido de un arreglo empleando ciclos

import numpy
ciudades = numpy.array(["palmira","buga"])
distancias = numpy.array([35.26,56.11])
longitud = ciudades.size
print("Distancias desde Cali")
for i in range(longitud):
print(ciudades[i],distancias[i],"km")

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 33
ARREGLOS Y CICLOS
◉ Problema propuesto: Realizar una aplicación que
imprima al menos 3 constantes de física. Emplee un arreglo
para almacenar el nombre de las constantes, otro para
almacenar el valor y otro para almacenar las unidades

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 34
ARREGLOS, CICLOS Y
CONDICIONALES
◉ Problema: Realizar una aplicación que simule el
lanzamiento de una moneda 1000 veces. Imprima la
cantidad de veces que la moneda cae en sello y la cantidad
de veces que cae en cara

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 35
ARREGLOS, CICLOS Y
CONDICIONALES
◉ Solución
import numpy
lanzamientos = numpy.random.randint(0,2,1000)
longitud = lanzamientos.size
acum_cara = 0
acum_sello = 0
for i in range(longitud):
if lanzamientos[i] == 0:
acum_cara=acum_cara+1
else:
acum_sello=acum_sello+1
print("acum_cara",acum_cara)
print("acum_sello",acum_sello)

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 36
ARREGLOS, CICLOS Y
CONDICIONALES
◉ Problema propuesto: Declara un vector de valores
aleatorios entre 1 y 3 de 100 posiciones llamado censo que
simule las respuestas a un censo en una comuna de la
ciudad.

respuesta descripción
1 Primaria
2 Bachillerato
3 Universidad

Imprima la cantidad de respuestas de cada tipo


Pregunta: ¿Es posible realizar esta aplicación sin emplear
ciclos?

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 37
OPERACIONES ENTRE ARREGLOS
◉ Problema: Realizar una aplicación que permita a un
usuario ingresar dos vectores de tamaño 3 e imprima la
suma, resta y multiplicación de ellos (elemento por
elemento)

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 38
OPERACIONES ENTRE ARREGLOS
◉ Solución

import numpy
a = numpy.zeros(3)
b = numpy.zeros(3)
longitud = a.size
for i in range(longitud):
a[i] = int(input("Digite a-"+str(i)+":"))
b[i] = int(input("Digite b-"+str(i)+":"))
print("suma",a+b)
print("resta",a-b)
print("multiplicacion",a*b)

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 39
OPERACIONES ENTRE ARREGLOS
◉ Problema propuesto: Investigue como realizar el
producto escalar entre vectores con NumPy

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 40
BIBLIGRAFÍA Y RECURSOS
◉ Tutorial de NumPy
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
http://docs.scipy.org/doc/numpy-1.10.0/reference/

◉ Enlaces con libros


https://librosweb.es/libro/python/
http://hipertextual.com/archivo/2014/08/libros-para-aprender-python/
http://www.comoprogramar.org/libros-de-phyton/

◉ Tutoriales interactivos
http://www.learnpython.org/
https://www.codecademy.com/courses/introduction-to-python-6WeG3

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 41
PRÓXIMA CLASE
◉ Genera un vector de 100 posiciones con valores aleatorios
entre 1 y 100 e imprima únicamente las casillas pares.
◉ Investigue 2 funciones adicionales de NumPy y relaciónelas
con un problema de su carrera. Realice un ejemplo por cada
una de ellas
◉ Comparta con sus compañeros los ejemplos realizados

Escuela de Ingeniería de sistemas y computación


Universidad del Valle Slide 42
Gracias !

También podría gustarte