Taller AyP Conjuntos Datos for 2015-1

7
Algoritmos y Programación para Ingeniería Eléctrica Departamento de Ingeniería Eléctrica Esteban Velilla – Jaime Valencia VISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICA en la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO. Introducción a Matlab y Python: Conjuntos de datos y uso de ciclo FOR Fecha: Lunes 20 de abril del 2015 Objetivo: Una vez finalizado el taller, los estudiantes deberán de estar en capacidad de reconocer, crear, modificar y manipulas tanto variables como estructuras de datos en ambos ambientes de trabajo (Python y Matlab), usando el recurso de ciclos FOR para aplicarlo en procesos o problemas. A continuación se presentan una serie de ejercicios que tratarán de llevar paso a paso la introducción de variables y estructuras en ambos lenguajes. 1. Variables numéricas: Estudiar los objetos en python del tipo lista (list), tupla (tuple), dictionatios (dict), conjuntos (set) y encontrar los equivalentes en Matlab. 2. Operaciones elementales Explorar el tipo de operaciones básicas que se pueden realizar con este tipo de objetos en Python y sus equivalentes en Matlab.

description

Problemas propuestos para práctica del uso de ciclos en programacion.

Transcript of Taller AyP Conjuntos Datos for 2015-1

Page 1: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

Introducción a Matlab y Python: Conjuntos de datos y uso de ciclo FOR

Fecha: Lunes 20 de abril del 2015

Objetivo:

Una vez finalizado el taller, los estudiantes deberán de estar en capacidad de reconocer, crear,modificar y manipulas tanto variables como estructuras de datos en ambos ambientes de trabajo(Python y Matlab), usando el recurso de ciclos FOR para aplicarlo en procesos o problemas.

A continuación se presentan una serie de ejercicios que tratarán de llevar paso a paso laintroducción de variables y estructuras en ambos lenguajes.

1. Variables numéricas: Estudiar los objetos en python del tipo lista (list), tupla (tuple), dictionatios (dict), conjuntos(set) y encontrar los equivalentes en Matlab.

2. Operaciones elementalesExplorar el tipo de operaciones básicas que se pueden realizar con este tipo de objetos enPython y sus equivalentes en Matlab.

Page 2: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

NOTA: es indiferente trabajar con letras mayúsculas o minúsculas para definir variable yvalores como true y false, verificar.

3. Generación de datosGenerar una lista en Python y un vector en Matlab con números consecutivos desde 0 hasta100, de uno en uno, de 10 en 10 y de 30 en 30.

Matlab PythonDe 0 hasta 100 de 1 en 1 A=0:1:100 A=range(0,100,1)De 0 hasta 100 de 10 en 10De 0 hasta 100 de 30 en 30

Utilizar la función linspace con la finalidad de obtener un resultado similar.

Matlab: help linspacePython: importar numpy y usar el help: help(numpy.linspace)

4. Generar datos aleatorios.Consultar como generar datos aleatoriamente en ambos ambientes, de tal manera que estosdatos se puedan almacenar bien sea en listas, matrices o estructuras definidas.

Sugerencias: utilizar las siguientes palabras claves, rand, randn.

5. Generación de arreglos matriciales

Hacer un programa que genere una matriz de 4 filas y 5 columnas llena de ceros.

Hacer un programa que genere una matriz de 3 filas y 2 columnas llenas con unos.

Page 3: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

Hacer un programa que genere una matriz con n filas cualquiera y m columnas cualquierallenando toda la matriz con ceros o con unos.

Hacer un programa que a partir de una lista de q datos los ordene en una matriz de n filas ym columnas, verificando que n x m = q.

NOTA: en Python represente las matrices con listas de lista donde cada lista interna es unafila. Ver su equivalente en Matlab.

6. Script para determinar el número mayorRealizar un script por Lenguaje para determinar el valor mayor y el menor en una lista dedatos.

NOTA: comparar sus resultados con las funciones min() y max().

7. Script para clasificar valores de una lista.Realizar un script que a partir de una lista de datos, obtenga una lista de igual dimensión quetenga como datos -1, 0 o 1 según si el valor respectivo en negativo, cero o positivo.

Hacer un programa para clasificar los datos en rangos dados.

Page 4: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

ACLARACIÓN: En Python se empieza desde la posición 0, en Matlab se trabaja como enalgebra vectorial, posiciones de vector enteras y positivas, por eso la posición 0 no existe,pero si A(1,1), elemento 1 de la matrix, o simplemente A(1) en el caso de ser un vector.

De igual manera, si se desea en Python trabajar de forma similar a MatLab, se podríaconvertir la lista en un arreglo, para ello se podría trabajar con el módulo de Numpy, y lafunción array.

Determinar la cantidad de elementos que hay en cada lista o en el vector (matriz):

Python: len(A)Matlab: length(A)

NOTA1:Se podría agregar al arreglo definido en la variable AA, otra variable tipo character(string)?.

Ejemplo: se tiene el conjunto de datos 1,2,3,4,5 y una variable ‘HOLA’, si se desea que elarreglo contenga los datos y el último elemento sea el carácter ‘HOLA’, se podría hacer?.

ACLARACIÓN2: En Python la lista tiene unos métodos por defecto, mientras que enMatlab serían funciones que se podrían utilizar para acceder o manipular dicha información.

MethodName Use ExplanationAppend alist.append(item) Adds a new item to the end of a listInsert alist.insert(i,item) Inserts an item at the ith position in a listPop alist.pop() Removes and returns the last item in a listPop alist.pop(i) Removes and returns the ith item in a listSort alist.sort() Modifies a list to be sortedReverse alist.reverse() Modifies a list to be in reverse orderDel del alist[i] Deletes the item in the ith position

Index alist.index(item) Returns the index of the first occurrence of item

Count alist.count(item) Returns the number of occurrences of itemRemove alist.remove(item) Removes the first occurrence of item

Explique los resultados de este programa

Page 5: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

listA = [1, 4, 3, 0]listB = ['x', 'z', 't', 'q']

printlistA.sortprintlistA.sort()printlistA

listA.insert(0, 100)listA.remove(3)listA.append(7)

printlistAprintlistA + listB

listB.sort()listB.pop()

printlistB

listB.count('a')listB.remove('a')

printlistB

listA.extend([4, 1, 6, 3, 4])

printlistA.count(4)printlistA.index(1)

listA.pop(4)listA.reverse()printlistA

Cual sería el equivalente en Matlab?

Page 6: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

8. Almacenar datos y caracteres en una misma variable.

Almacenar los datos del punto 4 incluyendo dos datos tipo carácter: ‘Hola’ y ‘Aquí’. Utilizandoceldas y listas. Ver tipo de variable con whos y type.

Conjunto de datos Matlab Python{5, 4, 8, 7, 11, 10, 14, 13,Hola, Aqui}

BB={5, 4, 8, 7, 11, 10, 14,13,'Hola','aqui'}

BB=[5, 4, 8, 7, 11, 10, 14, 13,‘Hola’, ‘Aquí’]

Cell de 1x10 lista

Similarmente al caso anterior, se puede acceder a la información almacenada en la variable:

AA(1) dará como resultado [5] en Matlab AA(10) dará como resultado 'aqui' en Matlab

AA[0] dará como resultado 5 en Python AA[9] dará como resultado ‘Aquí’ en Python

Ejercicio:A partir de la variable BB, realizar operaciones entre 2 o más elementos disponibles en lavariable, ejemplo, sumar la posición 1 con la 2, (5+4).

En caso tal de que las operaciones no se puedan hacer, plantear una estrategia pararesolverlo.

9. Modificación de estructuras

ref: https://courses.edx.org/courses/MITx/6.00.1-x/1T2014/courseware/Week_2/videosequence:Lecture_3/

Dada una lista de datos L = [3,4,2.3, 'aqui', 2+3j, True, False, 2>4]

¿ cómo incluir en la lista el dato 44.44?¿ cómo pasar el dato 'aqui' a la posición inicial?¿ cómo obtener la posición de un dato en el arreglo?

Page 7: Taller AyP Conjuntos Datos for 2015-1

Algoritmos y Programación para Ingeniería EléctricaDepartamento de Ingeniería Eléctrica

Esteban Velilla – Jaime ValenciaVISION: "El programa de Ingeniería Eléctrica de la Universidad de Antioquia será reconocido por sus aportes al MANEJO EFICIENTE DE LA ENERGIA ELECTRICAen la región y el país, manifestados en la formación de ingenieros emprendedores y en proyectos de INVESTIGACIÓN, INNOVACIÓN Y DESARROLLO.

REVISAR:

1. http://aprendeenlinea.udea.edu.co/lms/ocw/mod/resource/view.php?inpopup=true&id=2132. Comparación Matlab y Python: http://wiki.scipy.org/NumPy_for_Matlab_Users3. Matworks: http://www.mathworks.com/4. Python: http://www.python.org/5. Comparación Python – Matlab. http://mathesaurus.sourceforge.net/matlab-python-xref.pdf6. Solving problems with algorithms and data structure:

http://interactivepython.org/runestone/static/pythonds/Introduction/introduction.html#objectives

7. Python online:https://trinket.io /

8. Python online (más complete): https://www.pythonanywhere.com/