Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:modulos:numpy

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:python:modulos:numpy [2020/12/09 15:08] – [Métodos] tempwininformatica:programacion:python:modulos:numpy [2020/12/09 15:59] (actual) – [Métodos] tempwin
Línea 51: Línea 51:
  
 </code> </code>
 +
 +<WRAP center round tip 60%>
 +No es necesario indicar el argumento ''shape'', podemos ahorrárnoslo y hacer ''np.zeros%%((3,5))%%''
 +</WRAP>
 +
  
 <WRAP center round info 60%> <WRAP center round info 60%>
Línea 150: Línea 155:
 </code> </code>
  
 +=== copy ===
 +
 +Realiza una copia de un array
 +
 +<code python>
 +mat = np.arange(0, 100).reshape(10, 10)
 +
 +matnew = mat.copy()
 +</code>
 ==== Selección ==== ==== Selección ====
  
Línea 159: Línea 173:
 # Elemento que ocupa la posición 0, 10 (fila, columna): # Elemento que ocupa la posición 0, 10 (fila, columna):
 mat[0,10] mat[0,10]
 +</code>
 +
 +Para coger todos los elementos de una fila o columna utilizamos el //slicing// típico de Python:
 +
 +<code python>
 +# Todos los valores de las filas, pero de la columna que ocupa la posición 1
 +mat[:,1]
 +
 +# Todos los valores de las columnas para la fila 2:
 +mat[2, :]
 +
 +# Porción:
 +mat[0:3,0,3]
 </code> </code>
 ===== Números aleatorios ===== ===== Números aleatorios =====
Línea 168: Línea 195:
 # Creamos un array de 10 números entre el 0 y el 100 # Creamos un array de 10 números entre el 0 y el 100
 arr = np.random.randint(0, 100, 10) arr = np.random.randint(0, 100, 10)
 +</code>
 +
 +===== Imágenes =====
 +
 +Por sí mismo, NumPy no es capaz de manejar imágenes sino que se apoya en el módulo PIL (biblioteca pillow, //Python Imaging Library//)
 +
 +<code python>
 +import numpy as np
 +from PIL import Image
 +
 +# Para poder ver las imágenes en un Notebook de Jupyter
 +import matplotlib.pyplot as plt
 +%matplotlib inline
 +
 +pic = Image.open('ruta/imagen.png')
 +
 +# Si queremos ver la imagen en Jupyter
 +pic
 +
 +type(pic)
 +
 +# PIL.PngImagePlugin.PngImageFile
 +</code>
 +
 +Convertimos la imagen a un array de NumPy:
 +
 +<code python>
 +pic_arr = np.asarray(pic)
 +
 +type(pic_array)
 +
 +# numpy.ndarray
 +
 +pic_arr.shape
 +
 +# (1080,1920, 3)
 +
 +# Mostrar el array como imagen:
 +plt.imshow(pic_arr)
 +</code>
 +
 +Para acceder a los canales de color:
 +
 +<code python>
 +pic_red = pic_arr.copy()
 +
 +# R = 0, G = 1, B = 2
 +
 +# Canal rojo. 0, sin rojo, negro. 255 puro rojo.
 +pic_red[:,:,0]
 +
 +# Lo representamos como escala de grises, es decir,
 +# si la imagen se acerca al negro, es que no tendrá presencia de rojo. 
 +# Si se acerca al blanco, tendrá mucha presencia de rojo.
 +plt.imshow(pic_red[:,:,0],cmap='gray')
 +
 +# Lo mismo para el verde
 +plt.imshow(pic_red[:,:,1],cmap='gray')
 +
 +# Lo mismo para el azul
 +plt.imshow(pic_red[:,:,2],cmap='gray')
 </code> </code>
informatica/programacion/python/modulos/numpy.1607522895.txt.gz · Última modificación: por tempwin