4.4.1 Listas – Ejemplos

Unión e Intersección

1Eva_IIT2007_T3 Garantías de prestamos IESS

Solución propuesta: Sol-py

1Eva_IIT2012_T4 Informe de pasantías

Solución propuesta: Sol_py

1Eva_IIT2010_T1 Censo de instrucción por género

Solución propuesta: Sol_py

1Eva_IT2010_T1 Bono para televisores en Uruguay

Solución propuesta: sol_py


Arreglos y Aleatorios, random, numpy

3Eva_IT2005_T4 Tabla de Pozo millonario

Solución propuesta: Sol_py

1Eva_IIT2005_T3 Entrenamiento atleta: promedios

Solución propuesta:  Sol_py

4.3.2 Cadenas de caracteres – Ejercicios

2Eva_IT2012_T2 Cifrado musical americano

2Eva_IT2010_T2 Operaciones infix – postfix

2Eva_IIT2009_T1 Mensaje a SMS

2Eva_IT2009_T1 Desordenar una palabra

2Eva_IIT2007_T1 Palabras aleatorias, genword

2Eva_IT2006_T3 Encriptar a Morse

3Eva_IIT2013_T3 buscar cadena en una frase

3Eva_IT2013_T1 Verificar Abecegrama

3Eva_IIT2012_T1 Alfabeto radiofónico

3Eva_IIT2008_T1 Contar palabras para un clasificado

3Eva_IT2007_T2 Crear Acrónimos

4.2.3 Matrices – Archivo Abrir/Guardar

Para usar matrices en Python se pueden obtener las matrices desde archivos, o almacenar las matrices hacia archivos. Así no será necesario tener que escribir los valores de las matrices cada vez que se requiera hacer una operacion.

Funciones incorporadas en libreria numpy para guardar o abrir una matriz desde un archivo en formato .txt.


Guardar matriz en archivo .txt

Guardar una matriz a un archivo usando: numpy.savetxt('matriz.txt', matriz)

>>> import numpy as np
>>> matriz = np.array([[1,2,3],[4,5,6]])
>>> matriz
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.savetxt('matriz00.txt',matriz)

se puede encontrar en archivo txt en el directorio de trabajo de Python

El archivo puede ser abierto para observar desde el «block de notas»


Abrir archivo.txt de una matriz

continuando con el ejercicio anterior, para abrir o leer desde un archivo en formato de texto ‘matriz.txt’, se dispone de la instruccion de Numpy:  np.loadtxt('matriz.txt',dtype=int)

La instrucción permite indicar el tipo de datos que se usan en el arreglo.

>>> A = np.loadtxt('matriz00.txt',dtype=int)
>>> A
array([[1, 2, 3],
       [4, 5, 6]])

>>> B = np.loadtxt('matriz00.txt')
>>> B
array([[ 1., 2., 3.],
       [ 4., 5., 6.]])

Nota: lo importante es el formato del archivo en tipo texto. Algunas veces los archivos tienen extensión .dat que también pueden ser leidos.

4.2.2 Matrices – Ejercicios

Problemas de aplicación

3Eva_IT2000_T2 Matriz: puntos por goles en campeonato

2Eva_IIT2011_T3 Movimientos del caballo en ajedrez

3Eva_IIT2015_T3 funciones matrices rotar, extraer

3Eva_IIT2015_T4 Orientar código QR (Quick Response Code)


Matrices y Aleatorios

3Eva_IIT2014_T1 Ubicar estudiantes en aula

2Eva_IT2015_T3 Distribuye tortugas en región

2Eva_IT2015_T4 Movilidad de tortugas en región


Matrices en Algebra

2Eva_IIT2009_T2 Transponer una matriz

2Eva_IT2007_T2 Verificar matriz triangular

1Eva_IT2004_T4 Verificar matriz simétrica

4.3 Cadenas de caracteres – vector de letras

El manejo de texto en computador es un tema interesante al conocer que internamente maneja solo números binarios. Se requiere una presentación de los símbolos o letras que representan un idioma.

Cada símbolo, letra o «caracter» que se presenta al escribir en pantalla se convierte en una sucesión ordenada de imágenes, semejante a agrupar las fichas del juego Scrable

Una palabra se puede observar como las casillas de un vector, dando la pauta para el manejo de texto en el computador.

En Python, el texto para los mensajes en las preguntas «input» y las salidas «print» se escriben entre comillas o apóstrofes. Cada letra de una palabra se puede identificar por su posición como en un vector.

>>> palabra = 'manzana'
>>> len(palabra)
7
>>> palabra[0]
'm'
>>> palabra[4]
'a'
>>> 

Concatenar texto

Al unir palabras se forma una oración, el concepto de concatenar se resume en la union de varias palabras para formar una oración un título o un mensaje.

>>> palabra1 = 'El'
>>> palabra2 = 'saber'
>>> frase = palabra1 + palabra2
>>> frase
'Elsaber'
>>> frase = palabra1 + ' ' + palabra2
>>> frase
'El saber'
>>> cadena1 = 'no ocupa lugar'
>>> frase = frase + ' ' + cadena1
>>> frase
'El saber no ocupa lugar'
>>> 

Mayúsculas /Minúsculas

Para convertir una frase o palabra a mayúsculas o viceversa, se usan las instrucciones: palabra.upper() y palabra.lower().

Siguiendo el ejemplo anterior, el ejemplo de uso es:

>>> frase
'El saber no ocupa lugar'
>>> enmayusculas = frase.upper()
>>> enmayusculas
'EL SABER NO OCUPA LUGAR'
>>> enminusculas = frase.lower()
>>> enminusculas
'el saber no ocupa lugar'
>>> 

Comparar cadenas

También es posible aplicar operaciones de comparación entre caracteres, o cadenas.
Considere que los caracteres o dibujos de mayúsculas son diferentes a los de minúsculas.

>>> letra1 = 'd'
>>> letra1 > 'a'
True
>>> letra1 > 'g'
False
>>> letra1 == 'D'
False
>>> 

ejemplo con cadenas, o palabras:

>>> fruta1 = 'manzana'
>>> fruta2 = 'pera'
>>> fruta3 = 'manzana'
>>> fruta4 = 'MANZANA'
>>> fruta1 == fruta3
True
>>> fruta1 == fruta2
False
>>> fruta1 == fruta4
False
>>> 

Segmentar texto

Para segmentar o dividir el texto por algún símbolo se dispone de la instruccion frase.split().

En el ejemplo se muestra como se separa la frase

>>> separa = frase.split()
>>> separa
['El', 'saber', 'no', 'ocupa', 'lugar']
>>> separa[1]
'saber'
>>> 

4.2 Matrices – Arreglos de dos dimensiones

Una forma de matriz muy conocida es la de dos dimensiones, con índices de filas «i» y columnas «j» y puede ser escrita en un arreglo de dos dimensiones

La interpretación de los datos de un arreglo – Matriz puede ser variada, desde un sistema de ecuaciones, una tabla de goles de un campeonato, una hoja de calendario.

Al igual que los vectores, las matrices en arreglos tienen como componentes: «nombre», «índice» y «tamaño». Los valores de tamaño dependen de las dimensiones de la matriz. Para los primeros ejercicios serán rectangulares de nxm.

Los índices a diferencia de el álgebra, inician en cero.

Para su mejor manejo se usan las funciones en la librería Numpy (Numerical Python) que se incorporan en el bloque de inicio con el alias np.

import numpy as np

En algebra se usa definir la matriz de nxm, para muchos problemas puede ser una matriz de ceros, o una matriz de unos:

>>> import numpy as np
>>> n = 5
>>> m = 7
>>> matriz0 = np.zeros(shape=(n,m), dtype=float)
>>> matriz0
array([[0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0.]])
>>> matriz1 = np.ones(shape=(n,m), dtype=float)
>>> matriz1
array([[1., 1., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 1.]])
>>> 

El tipo de matriz (dtype=int) se añade para indicar que la matriz es de tipo entera, la forma predeterminada para los datos es tipo real (dtype=float)

Las dimensiones de la matriz se obtienen mediante la intrucción:

>>> np.shape(matriz0)
(5, 7)
>>> tamano = np.shape(matriz0)
>>> tamano
(5, 7)
>>> tamano[0]
5
>>> tamano[1]
7
>>> dimension = np.ndim(matriz0)
>>> dimension
2
>>> 

entre otras operaciones en Numpy que reflejan las operaciones de matrices de algebra.


Video Tutorial


Referencias: Inice con la definición de matrices del algebra lineal:

http://blog.espol.edu.ec/matg1049/cl1-02-sistema-de-ecuaciones-lineales/

Las operaciones básicas de matrices se describen también en algebra lineal:

http://blog.espol.edu.ec/matg1049/cl2-07-operaciones-entre-subespacios/


Algoritmos sobre Matrices en Análisis y Métodos Numéricos

La Unidad 3 Sistemas de Ecuaciones del curso Análisis Numérico desarrolla los algoritmos en Python en base a los métodos matemáticos.

3.2 Pivoteo parcial por filas


Interpretación de matrices

Observe el siguiente video y plantee la relación con el tema de arreglos, matrices, dimensiones y computación.

4.1.2 Vectores – Ejercicios

Arreglos unidimensionales, (vectores), numpy

1) 1Eva_IT2013_T4 Tabular atención al cliente

solución propuesta: Sol_py

2) 1Eva_IIT2002_T2 Color de placas de vehículos

Solución propuesta:  sol_py

3) 1Eva_IT2008_T2 Criba de Eratóstenes

Solución propuesta: sol_py

4) 1Eva_IT2002_T3 Calificaciones mejores que alguien


Arreglos y aleatorios

1) 1Eva_IT2008_T3 Simular precio de petroleo

Solución propuesta (literal c): sol_py

2) 1Eva_IIT2010_T3 Juego del amigo secreto

Solución propuesta: sol_py,

3) 1Eva_IIT2007_T2 Juego de la Ruleta

Solución propuesta: sol_py


Ejercicios autónomos

1) 1Eva_IT2005_T3 Arreglo aleatorio binario a decimal

2) 1Eva_IT2001_T6 Piloto y copiloto para nave

3) 1Eva_IIT2002_T3 Conjetura de Ullman

4) 1Eva_IIT2008_T4 Area del polígono convexo por triángulos