Listas 2
Listas 2
Listas 2
'Sábado', 'Domingo']
Ejercicio 1
Crea un array o arreglo unidimensional donde le indiques el tamaño por teclado y crear
una función que rellene el array o arreglo con los múltiplos de un número pedido
por teclado. Por ejemplo, si defino un array de tamaño 5 y elijo un 3 en la función, el
array contendrá 3, 6, 9, 12, 15. Muestralos por pantalla usando otra función distinta.
Ejercicio 2
Crea dos arrays o arreglos unidimensional es que tengan el mismo tamaño (lo pedirá por
teclado), en uno de ellos almacenarás nombres de personas como cadenas, en el otro array
o arreglo ira almacenando la longitud de los nombres.
Ejercicio 3
Dado el siguiente arreglo de números:
[1, 5, 8, 3, 30, 9, 13]
Imprimir en pantalla programáticamente los números impares mayores a 3.
Ejercicio 4
Dada las siguientes notas almacenadas en un arreglo:
[20, 15, 12, 11, 8, 4, 1]
Elimine la nota más baja programáticamente sin usar la función (min) y escriba en
pantalla. Luego programáticamente calcule el promedio de notas descontando la nota
eliminada.
a = ["a1","a2","a3"]
b = ["b1","b2"]
c = a+b
print (c)
Listas en Python
25 julio, 2017
Declaración de lista
lista = list()
lista = []
lista = [1, 2, 3, 4]
Eliminar duplicados
lista = ['A','B','C','D','A','A']
lista = set(lista)
print(sorted(lista)) # Es necesario ordenarlo ya que lo descolora
# ['A', 'B', 'C', 'D']
l = np.array([1, 2, 3, 4])
print( l[l>2] )
print( np.mean(l[l>2]) )
17
11 Votes
Ambas funciones son validas a la hora de crear una sentencia que solicite datos, pero
¿Que diferencia tienen?.
La función input está destinada a la entrada de cualquier caracter, siempre y cuando este
mismo sea notificado como es. Es decir, si ingresamos números, simplemente sera así lo
que nos dirá Python:
Este error se debe a que Python supone que el ingreso sera un String y requiere que sea
definido. Para solucionarlo bastaría con adicionar lo siguiente:
Aunque el problema está solucionado, dudo que el usuario final ingrese su nombre de
esa manera.
¿Entonces que hacemos?. Recurrimos a la función raw_input, esta función hará que
Python
almacene lo que sea dentro de un String.
print (a)
Arreglos bidimensionales
Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo
bidimensional está simultáneamente en una fila y en una columna.
Al igual que los arreglos de una dimensión, los arreglos bidimensionales también
pueden ser creados usando la función array, pero pasando como argumentos una lista
con las filas de la matriz:
Todas las filas deben ser del mismo largo, o si no ocurre un error de valor:
Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaños de
cada dimensión. En el ejemplo, a es un arreglo de dos dimensiones que tiene tres filas y
cuatro columnas:
>>> a.shape
(3, 4)
Los arreglos también tienen otro atributo llamado size que indica cuántos elementos
tiene el arreglo:
>>> a.size
12
Hay que tener cuidado con la función len, ya que no retorna el tamaño del arreglo, sino
su cantidad de filas:
>>> len(a)
3
Las funciones zeros y ones también sirven para crear arreglos bidimensionales. En vez
de pasarles como argumento un entero, hay que entregarles una tupla con las cantidades
de filas y columnas que tendrá la matriz:
Lo mismo se cumple para muchas otras funciones que crean arreglos; por ejemplom la
función random:
>>> a + 2
array([[7, 3, 6],
[2, 5, 4]])
>>> a ** b
array([[25, 1, 0],
[ 0, 1, 2]])
Cuando dos matrices aparecen en una operación, ambas deben tener exactamente la
misma forma:
>>> a[4, 3]
8.78
>>> a[1:3, 2]
array([ 2.14, 0.71])
Para obtener una fila completa, hay que indicar el índice de la fila, y poner : en el de las
columnas (significa «desde el principio hasta el final»). Lo mismo para las columnas:
>>> a[2, :]
array([ 5.62, 0.54, 0.71, 2.56])
>>> a[:, 3]
array([ 6.41, 6.57, 2.56, 8.76, 8.78])
Note que el número de dimensiones es igual a la cantidad de rebanados que hay en los
índices:
Otras operaciones
La trasposicion consiste en cambiar las filas por las columnas y viceversa. Para
trasponer un arreglo, se usa el método transpose:
>>> a
array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56]])
>>> a.transpose()
array([[ 3.21, 9.54, 5.62],
[ 5.33, 0.3 , 0.54],
[ 4.67, 2.14, 0.71],
[ 6.41, 6.57, 2.56]])
El método reshape entrega un arreglo que tiene los mismos elementos pero otra forma.
El parámetro de reshape es una tupla indicando la nueva forma del arreglo:
>>> a = arange(12)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> a
array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56]])
>>> diag(a)
array([ 3.21, 0.3 , 0.71])
Además, diag recibe un segundo parámetro opcional para indicar otra diagonal que se
desee obtener. Las diagonales sobre la principal son positivas, y las que están bajo son
negativas:
>>> diag(a, 2)
array([ 4.67, 6.57])
>>> diag(a, -1)
array([ 9.54, 0.54])
La misma función diag también cumple el rol inverso: al recibir un arreglo de una
dimensión, retorna un arreglo bidimensional que tiene los elementos del parámetro en la
diagonal:
>>> diag(arange(5))
array([[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 2, 0, 0],
[0, 0, 0, 3, 0],
[0, 0, 0, 0, 4]])
Por ejemplo, a.sum() entrega la suma de todos los elementos del arreglo. Además, se le
puede pasar un parámetro para hacer que la operación se haga por filas o por columnas:
>>> a.min()
0.1
>>> a.min(0)
array([ 1.2, 1.5, 1.5, 0.1, 0.6])
>>> a.min(1)
array([ 0.1, 4.3, 3.1, 1.2, 0.9, 1.2, 0.6])
>>> a.argmin(0)
array([3, 3, 6, 0, 6])
>>> a.argmin(1)
array([3, 4, 1, 0, 3, 4, 4])
.---------------------
Esta operación tiene dos operandos: una matriz y un vector. El resultado es un vector. A
los operandos los denominaremos respectivamente A y x, y al resultado, b.
36w+51y+13z52w+34y+74z7y+1.1z=3=45=33
En matemáticas, este sistema se representa matricialmente así:
⎡⎣⎢36525134713741.1⎤⎦⎥⎡⎣⎢wyz⎤⎦⎥=⎡⎣⎢34533⎤⎦⎥
La teoría detrás de la resolución de problemas de este tipo usted la aprenderá en sus
ramos de matemáticas. Sin embargo, como este tipo de problemas aparece a menudo en
la práctica, aprenderemos cómo obtener rápidamente la solución usando Python.
>>> dot(a, x)
array([ 3., 45., 33.])
>>> b
array([ 3., 45., 33.])
Sin embargo, es importante tener en cuenta que los valores de tipo real casi nunca están
representados de manera exacta en el computador, y que el resultado de un algoritmo
que involucra muchas operaciones puede sufrir de algunos errores de redondeo. Por esto
mismo, puede ocurrir que aunque los resultados se vean iguales en la consola, los datos
obtenidos son sólo aproximaciones y no exactamente los mismos valores: