Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema03

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:iabd:pia:1eval:tema03 [2022/12/01 11:30]
admin [Transformaciones]
clase:iabd:pia:1eval:tema03 [2023/11/09 10:17] (actual)
admin [Ejercicios]
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> </note>
 +
 +<note warning>
 +Hemos visto que se pueden seleccionar filas o columnas independientes usando un array ''a%%[%% %%[%%0,3%%]%%,:%%]%%'' o ''a%%[%%:,%%[%%0,3%%]%% %%]%%'' pero lo que no podemos es hacerlo a la vez. 
 +
 +$$
 +\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,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
 +
 +a[[0,2],[1,3]]
 +</sxh>
 +
 +
 +Muestra ésto:
 +<sxh base>
 +[ 2 12]
 +</sxh>
 +
 +
 +¿De donde salen esos valores? Porque son lista de filas y columnas. Es decir que realmente quieres los puntos ''(0,1)'' y ''(2,3)'' que corresponden a los valores ''2'' y ''12''. Es decir que está indicando listas de puntos pero el primer parámetro son las filas y en el segundo parámetro son las columnas.
 +
 +¿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,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
 +a[[0,2],:][:,[1,3]]
 +</sxh>
 +
 +<sxh python>
 +[[ 2  4]
 + [10 12]]
 +</sxh>
 +
 +</note>
 +
 +
  
 ===== Operaciones ===== ===== Operaciones =====
Línea 665: Línea 709:
  
  
 +
 +==== Imprimir ====
 +Se puede imprimir un array de numpy con la función ''print'' pero a veces queremos que no salga la notación científica y para ello usaremos:''np.set_printoptions(suppress = True)''
 +
 +<sxh python>
 +a=np.array([0.000010,0.000020,0.000030,0.000040,0.000050])
 +print(a)
 +</sxh>
 +
 +<sxh base>
 +[1.e-05 2.e-05 3.e-05 4.e-05 5.e-05]
 +</sxh>
 +
 +
 +Pero si ejecutamos la orden ''np.set_printoptions(suppress = True)''
 +
 +<sxh python>
 +np.set_printoptions(suppress = True)
 +a=np.array([0.000010,0.000020,0.000030,0.000040,0.000050])
 +print(a)
 +</sxh>
 +
 +<sxh base>
 +[0.00001 0.00002 0.00003 0.00004 0.00005]
 +</sxh>
 +
 +
 +
 +Mas información:
 +  * [[https://numpy.org/doc/stable/reference/generated/numpy.set_printoptions.html|numpy.set_printoptions]]
  
  
Línea 754: Línea 828:
 </sxh> </sxh>
  
-<sxh python>+<sxh base>
 array([[10,  2], array([[10,  2],
        [30,  4],        [30,  4],
Línea 959: Línea 1033:
  
 <note tip>Notar como se ha cambiado el tipo de datos ya que ahora es con decimales</note> <note tip>Notar como se ha cambiado el tipo de datos ya que ahora es con decimales</note>
 +
 +También podemos guardar estructuras más complejas como mapas con ''np.save'':
 +
 +<sxh python>
 +import numpy as np
 +
 +datos=np.array([
 +  {
 +    "a":[1,2,3,4],
 +    "b":[10,20,30,40]
 +  },{
 +    "a":[1.2,2.2,3.2,4.2],
 +    "b":[10.2,20.2,30.2,40.2]
 +  },{
 +    "a":[1.3,2.3,3.3,4.3],
 +    "b":[10.3,20.3,30.3,40.3]
 +  }
 +])
 +
 +print(datos)
 +print(datos[2]["a"])
 +np.save("datos.npy",datos)
 +</sxh>
 + 
 +<sxh base>
 +[{'a': [1, 2, 3, 4], 'b': [10, 20, 30, 40]}
 + {'a': [1.2, 2.2, 3.2, 4.2], 'b': [10.2, 20.2, 30.2, 40.2]}
 + {'a': [1.3, 2.3, 3.3, 4.3], 'b': [10.3, 20.3, 30.3, 40.3]}]
 +[1.3, 2.3, 3.3, 4.3]
 +</sxh>
 +
 +y volver a leerlas con ''np.load'':
 +
 +<sxh python>
 +nuevos_datos=np.load("datos.npy",allow_pickle=True)
 +print(nuevos_datos)
 +print(nuevos_datos[2]["a"])
 +</sxh>
 +
 +<sxh base>
 +[{'a': [1, 2, 3, 4], 'b': [10, 20, 30, 40]}
 + {'a': [1.2, 2.2, 3.2, 4.2], 'b': [10.2, 20.2, 30.2, 40.2]}
 + {'a': [1.3, 2.3, 3.3, 4.3], 'b': [10.3, 20.3, 30.3, 40.3]}]
 +[1.3, 2.3, 3.3, 4.3]
 +</sxh>
 +<note>
 +El argumento ''allow_pickle=True'' se usa para indicar que se puedan cargar objetos desde el fichero. Eso tiene riesgos de seguridad pero en nuestro entorno no suele ser un problema ya que suelen ser datos guardados por nosotros.
 +</note>
 ===== Ejercicios ===== ===== Ejercicios =====
  
Línea 990: 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 997: 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 1048: Línea 1171:
 {{:clase:iabd:pia:1eval:cubo.png?direct&400|}} {{:clase:iabd:pia:1eval:cubo.png?direct&400|}}
  
-Ahora selecciona las celdas en rojo oscuro pero tambien las verdes y azules que hay por detras de las rojo oscuro.+Ahora selecciona las celdas en rojo oscuro pero también las verdes y azules que hay por detrás de las rojo oscuro.
  
 ==== Ejercicio 9: Matrices ==== ==== Ejercicio 9: Matrices ====
Línea 1108: Línea 1231:
  
 Calcula: Calcula:
-  * El Nº Máximo de neuronas que llegó a haber en cualquier red+  * El Nº Máximo de neuronas de una capa que llegó a haber  en cualquier red
   * 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 1322: Línea 1445:
  
 <sxh base> <sxh base>
-  Red       Épocas     loss Mitad  loss Final    Tiempo (s) +  Nº  Red              Épocas    loss Mitad    loss Final    Tiempo (s) 
-----------  --------   ----------  ------------  --------- +----  -------------  --------  ------------  ------------  ------------ 
-2,4,1       30         0.4         0.6            0.4 +   0  4,8,4,2,1            20    0.209651     0.191906             0.79 
-4,8,8,2,1   34         0.3         0.           1.56 +   1  4,8,4,2,1            40    0.189802     0.111734             0.86 
-... +   2  8,16,8,4,          20    0.218724     0.190873             0.73 
-16,32,1     20         0.        0.9            12.71+    8,16,8,4,          40    0.187368     0.131706             0.87 
 +    16,32,16,8,        20    0.143569     0.0653756            0.72 
 +   5  16,32,16,8,        40    0.0548877    0.0046529            0.87 
 +   6  32,64,32,8,1         20    0.0211689    0.00260244           0.74 
 +    32,64,32,8,        40    0.00226261   7.84583e-05          0.87 
 +    64,128,64,8,       20    0.0129097    0.00143349           0.77 
 +    64,128,64,8,       40    0.00150978   8.06734e-05          1.16
 </sxh> </sxh>
  
clase/iabd/pia/1eval/tema03.1669890630.txt.gz · Última modificación: 2022/12/01 11:30 por admin