Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:modulos:numpy

¡Esta es una revisión vieja del documento!


NumPy

Se suele cargar en Python con el alias np:

import numpy as np

Arrays

Podemos convertir una lista de Python en un array/matriz de NumPy:

mylist = [1, 2, 3]
 
myarray = np.array(mylist)
 
type(myarray)
 
# Devolverá: numpy.ndarray

Métodos

arange

Genera un array:

np.arange(0, 3)
 
# array([0, 1, 2, 3])
 
# Genera un array del 0 al 10, pero con saltos de 2
np.arange(0, 10, 2)
 
# array([0, 2, 4, 6, 8])

zeros

Genera arrays de ceros. Permite indicar las dimensiones del array:

np.zeros(shape=(3,5))
 
# resultado:
#array([[0., 0., 0., 0., 0.],
#       [0., 0., 0., 0., 0.],
#       [0., 0., 0., 0., 0.]])

Por defecto, el método zeros() crea números decimales (float).

ones

Genera arrays de unos. Permite indicar las dimensiones del array:

np.ones(shape=(3,5))
 
# resultado:
#array([[1., 1., 1., 1., 1.],
#       [1., 1., 1., 1., 1.],
#       [1., 1., 1., 1., 1.]])

Por defecto, el método ones() crea números decimales (float).

max

Devuelve el valor más alto de un array:

# arr = array([ 4, 63, 40, 60, 92, 64,  5, 12, 93, 40])
arr.max() # 93

min

Devuelve el valor más pequeño de un array:

# arr = array([ 4, 63, 40, 60, 92, 64,  5, 12, 93, 40])
arr.min() # 4

argmax

Devuelve la posición del elemento más grande del array

# arr = array([ 4, 63, 40, 60, 92, 64,  5, 12, 93, 40])
 
arr.argmax # 8

argmin

Devuelve la posición del elemento más grande del array

# arr = array([ 4, 63, 40, 60, 92, 64,  5, 12, 93, 40])
 
arr.argmin # 0

mean

Calcula el valor medio de un array

# arr = array([ 4, 63, 40, 60, 92, 64,  5, 12, 93, 40])
arr.mean() # 47.3

reshape

Cambiar las dimensiones de un array

arr = np.random.randint(0, 100, 10)
 
# array([95, 11, 81, 70, 63, 87, 75,  9, 77, 40])
 
arr.reshape((5, 2))
 
# array([[95, 11],
#       [81, 70],
#       [63, 87],
#       [75,  9],
#       [77, 40]])

Las nuevas dimensiones tiene que ser lógicas. Si tenemos un array con 10 elementos, no podemos convertirlo en un array de 3 filas y 2 columnas, por ejemplo.

Podemos combinar métodos:

# Crear una matriz de 10 filas y 10 columnas con los 100 primeros números (del 0 al 99) 
mat = np.arange(0, 100).reshape(10,10)

copy

Realiza una copia de un array

mat = np.arange(0, 100).reshape(10, 10)
 
matnew = mat.copy()

Selección

Para coger algún elemento del array, nos referimos a su posición.

mat = np.arange(0, 100).reshape(10, 10)
 
# Elemento que ocupa la posición 0, 10 (fila, columna):
mat[0,10]

Para coger todos los elementos de una fila o columna utilizamos el slicing típico de 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]

Números aleatorios

# Semilla para la aleatoriedad
np.random.seed(101)
 
# Creamos un array de 10 números entre el 0 y el 100
arr = np.random.randint(0, 100, 10)

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)

informatica/programacion/python/modulos/numpy.1607524245.txt.gz · Última modificación: por tempwin