Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:1eval:tema03 [2022/11/12 18:35] admin [3. NumPy] |
clase:iabd:pia:1eval:tema03 [2023/11/09 10:17] (actual) admin [Ejercicios] |
||
---|---|---|---|
Línea 44: | Línea 44: | ||
</ | </ | ||
- | Usando un array se tarda 5,6 segundos mientras que usando numpy se arda **solo** 0,009 segundos. La diferencia es abismal. | + | Usando un array se tarda 5,3 segundos mientras que usando numpy se arda **solo** 0,012 segundos. La diferencia es abismal. |
Línea 335: | Línea 335: | ||
Este //truco// de los booleanos, permite hacer una especie de filtros para buscar datos en los arrays de numpy | Este //truco// de los booleanos, permite hacer una especie de filtros para buscar datos en los arrays de numpy | ||
</ | </ | ||
+ | |||
+ | <note warning> | ||
+ | Hemos visto que se pueden seleccionar filas o columnas independientes usando un array '' | ||
+ | |||
+ | $$ | ||
+ | \begin{pmatrix} | ||
+ | 1 & 2 & 3 & 4\\ | ||
+ | 5 & 6 & 7 & 8\\ | ||
+ | 9 & 10 & 11 & 12\\ | ||
+ | 13 & 14 & 15 & 16 | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | El siguiente código: | ||
+ | <sxh python> | ||
+ | a=np.array([[1, | ||
+ | |||
+ | a[[0, | ||
+ | </ | ||
+ | |||
+ | |||
+ | Muestra ésto: | ||
+ | <sxh base> | ||
+ | [ 2 12] | ||
+ | </ | ||
+ | |||
+ | |||
+ | ¿De donde salen esos valores? Porque son lista de filas y columnas. Es decir que realmente quieres los puntos '' | ||
+ | |||
+ | ¿entonces como podemos hacer lo que queríamos hacer de obtener la 2 filas y las 2 columnas? Generando primero la matriz con las filas que queremos y luego obteniendo las columnas que queremos. | ||
+ | |||
+ | <sxh python> | ||
+ | a=np.array([[1, | ||
+ | a[[0, | ||
+ | </ | ||
+ | |||
+ | <sxh python> | ||
+ | [[ 2 4] | ||
+ | [10 12]] | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
===== Operaciones ===== | ===== Operaciones ===== | ||
Línea 445: | Línea 489: | ||
</ | </ | ||
- | ==== Añadir elementos ==== | + | ==== Añadir elementos |
+ | Para añadir filas o columnas se usa '' | ||
- | | + | $$ |
+ | \begin{pmatrix} | ||
+ | 1 & 2 & 3\\ | ||
+ | 10 & 20 & 30\\ | ||
+ | 100 & 200 & 300 | ||
+ | \end{pmatrix} | ||
+ | $$ | ||
+ | |||
+ | |||
+ | | ||
<sxh python> | <sxh python> | ||
Línea 461: | Línea 515: | ||
| | ||
</ | </ | ||
+ | |||
+ | * Se añaden columnas con '' | ||
+ | <sxh python> | ||
+ | a=np.array([[1, | ||
+ | a=np.append(a, | ||
+ | a | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | array([[ | ||
+ | [ 10, 20, 30, 40], | ||
+ | [100, 200, 300, 400]]) | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Destacar que el elemento a añadir debe ser una columna '' | ||
+ | |||
===== Información ===== | ===== Información ===== | ||
Línea 638: | Línea 709: | ||
+ | |||
+ | ==== Imprimir ==== | ||
+ | Se puede imprimir un array de numpy con la función '' | ||
+ | |||
+ | <sxh python> | ||
+ | a=np.array([0.000010, | ||
+ | print(a) | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | [1.e-05 2.e-05 3.e-05 4.e-05 5.e-05] | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pero si ejecutamos la orden '' | ||
+ | |||
+ | <sxh python> | ||
+ | np.set_printoptions(suppress = True) | ||
+ | a=np.array([0.000010, | ||
+ | print(a) | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | [0.00001 0.00002 0.00003 0.00004 0.00005] | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Mas información: | ||
+ | * [[https:// | ||
Línea 701: | Línea 802: | ||
a=np.array([10, | a=np.array([10, | ||
b=np.array([2, | b=np.array([2, | ||
- | c=np.column_stack((a, | + | np.column_stack((a, |
</ | </ | ||
Línea 717: | Línea 818: | ||
\end{pmatrix} | \end{pmatrix} | ||
$$ | $$ | ||
+ | |||
+ | < | ||
+ | Aquí hay que fijarse la diferencia entre '' | ||
+ | |||
+ | <sxh python> | ||
+ | a=np.array([10, | ||
+ | b=np.array([2, | ||
+ | np.append(a.reshape(-1, | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | array([[10, | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | </ | ||
==== Transformar de matriz a array ==== | ==== Transformar de matriz a array ==== | ||
Línea 809: | Línea 927: | ||
array([[10, 20, 30], | array([[10, 20, 30], | ||
[40, 60, 70]]) | [40, 60, 70]]) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Transformar de array a array ==== | ||
+ | |||
+ | * Cambiar de fila a columna | ||
+ | |||
+ | <sxh python> | ||
+ | np.array([1, | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | array([[1], | ||
+ | [2], | ||
+ | [3], | ||
+ | [4], | ||
+ | [5]]) | ||
</ | </ | ||
Línea 898: | Línea 1033: | ||
<note tip> | <note tip> | ||
+ | |||
+ | También podemos guardar estructuras más complejas como mapas con '' | ||
+ | |||
+ | <sxh python> | ||
+ | import numpy as np | ||
+ | |||
+ | datos=np.array([ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | },{ | ||
+ | " | ||
+ | " | ||
+ | },{ | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ]) | ||
+ | |||
+ | print(datos) | ||
+ | print(datos[2][" | ||
+ | np.save(" | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | [{' | ||
+ | | ||
+ | | ||
+ | [1.3, 2.3, 3.3, 4.3] | ||
+ | </ | ||
+ | |||
+ | y volver a leerlas con '' | ||
+ | |||
+ | <sxh python> | ||
+ | nuevos_datos=np.load(" | ||
+ | print(nuevos_datos) | ||
+ | print(nuevos_datos[2][" | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | [{' | ||
+ | | ||
+ | | ||
+ | [1.3, 2.3, 3.3, 4.3] | ||
+ | </ | ||
+ | < | ||
+ | El argumento '' | ||
+ | </ | ||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
Línea 929: | Línea 1112: | ||
\end{pmatrix} | \end{pmatrix} | ||
$$ | $$ | ||
+ | |||
* Muestra el elemento de la fila 2º y la columna 3º. Es el valor del 7. | * Muestra el elemento de la fila 2º y la columna 3º. Es el valor del 7. | ||
Línea 936: | Línea 1120: | ||
* Muestra la 2º y 3º Fila | * Muestra la 2º y 3º Fila | ||
* Muestra la última columna. Debe funcionar independientemente del número de columnas. | * Muestra la última columna. Debe funcionar independientemente del número de columnas. | ||
- | * Muestra la 2º y 3º Columna y la 1º y 3º fila | + | * Muestra la 2º y 4º Columna y la 1º y 3º fila |
* Muestra de la 2º a la 3º Columna y de la 1º a la 3º fila | * Muestra de la 2º a la 3º Columna y de la 1º a la 3º fila | ||
* Muestra todas las columnas excepto la primera y la última. Debe funcionar independientemente del número de columnas. | * Muestra todas las columnas excepto la primera y la última. Debe funcionar independientemente del número de columnas. | ||
Línea 987: | Línea 1171: | ||
{{: | {{: | ||
- | Ahora selecciona las celdas en rojo oscuro pero tambien | + | Ahora selecciona las celdas en rojo oscuro pero también |
==== Ejercicio 9: Matrices ==== | ==== Ejercicio 9: Matrices ==== | ||
Línea 1047: | Línea 1231: | ||
Calcula: | Calcula: | ||
- | * El Nº Máximo de neuronas que llegó a haber en cualquier red | + | * El Nº Máximo de neuronas |
* El Nº máximo de neuronas que hubo en cada red | * El Nº máximo de neuronas que hubo en cada red | ||
* El Nº máximo de neuronas que hubo en cada capa | * El Nº máximo de neuronas que hubo en cada capa | ||
Línea 1261: | Línea 1445: | ||
<sxh base> | <sxh base> | ||
- | Red | + | |
- | ---------- | + | ---- ------------- |
- | 2,4,1 30 0.4 0.6 | + | 0 4,8,4,2,1 |
- | 4,8,8,2,1 34 0.3 0.7 1.56 | + | 1 |
- | ... | + | |
- | 16,32,1 20 0.3 0.9 12.71 | + | 3 |
+ | | ||
+ | 5 16, | ||
+ | 6 32,64,32,8,1 20 | ||
+ | | ||
+ | | ||
+ | 9 | ||
</ | </ | ||