Numpy Basico.pdf

Manejo b´ asico de la libreria NumPy 1 NumPy En este notebook encontrar´ an algunos ejemplos basicos sobre el uso d

Views 143 Downloads 6 File size 133KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • ceul
Citation preview

Manejo b´ asico de la libreria NumPy

1

NumPy

En este notebook encontrar´ an algunos ejemplos basicos sobre el uso de la libreria NumPy de python. Para crear arrays en NumPy hay tres formas de hacerlo: 1. 2. 3. 4.

A partir de secuencias (Listas o tuplas) de python Usando funciones de NumPy Lectura de datos desde ficheros Copiando desde otro array

1.0.1

Manejo o manipulaci´ on basica de arrays

Los arrays tiene un manejo de sus elementos muy similares a las listas o tuplas,puesto que su contenido tambi´en est´ a indexado. Para acceder a un elemento de array, se hace de la misma forma que en una lista: se indica la posici´ on del elemento mediante un indice entero entre corchetes [ ] Las formas b´ asicas de selecci´ on de los elementos de un array de numpy son: Tipo de Seleccion Un solo elemento Varios elementos Una rebanada de elementos Elementos en cualquier orden

Sintaxis x[i] x[i : j] x[start : end : step] x[[p1 , p2 , ..., pk ]]

# Se importa la libreria numpy import numpy as np # Se crea un array utilizando funciones de NumPy a = np.arange(1,21) #Se muestra toda la lista a array([ 1, 2, 3, 4, 18, 19, 20])

5,

6,

7,

8,

9, 10, 11, 12, 13, 14, 15, 16, 17,

#Se muestra el elemento con indice i:3 a[3]

1

4 #Se muestran los elementos desde el indice i=2 hasta el indice i=6 a[2:7] array([3, 4, 5, 6, 7]) # Se le pasa una lista con las posiciones deseadas (no necesariamente consecutivas). # Esto es algo nuevo, en ´ ocomparacin con las listas o tuplas en python a[[2,5,7,10,15,19]] array([ 3,

6,

8, 11, 16, 20])

Notese que el extraer varios elementos de un array, genera otro array. Los indices del array tambien pueden tomar valores negativos. # Muestra el elemento i:1 y el ultimo elemento a[1],a[-1] (2, 20) # muestra el elemento i:3, el elemento i:16 y una array con i desde 3 hasta 16 a[3],a[-4],a[3:-4] (4, 17, array([ 4,

5,

6,

7,

8,

9, 10, 11, 12, 13, 14, 15, 16]))

#Muestra los tres ultimos elementos a[-3:] array([18, 19, 20]) # Muestra los elementos del array de 2 en 2 a[0:11:2] array([ 1,

1.0.2

3,

5,

7,

9, 11])

Arrays N-Dimensionales

Se pueden crear de la misma forma que un array simple: 1 2 3 4 5

Haciendo uso de listas de listas o tuplas de tuplas Usando funciones de NumPy Leyendo desde ficheros Copiando o extrayendo de otro array Haciendo uso de la propiedad shape o del metodo reshape # Usando la forma 1: a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

2

print a print "SHAPE: ", a.shape

[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] SHAPE: (3, 4) #Usando la forma 2: a1 = np.ones((2,3)) a0 = np.zeros((2,3)) print a0 print a1

[[ [ [[ [

0. 0. 1. 1.

0. 0. 1. 1.

0.] 0.]] 1.] 1.]]

# Usando shape: a = np.arange(10) print " a: ",a a.shape = [2,5] a

a:

[0 1 2 3 4 5 6 7 8 9]

array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) # Usando reshape a = np.arange(10) print "a: ", a,"\n" b = a.reshape((2,5)) print "b: ",b

a:

[0 1 2 3 4 5 6 7 8 9]

b: [[0 1 2 3 4] [5 6 7 8 9]] La sintaxis para obtener un elemento de la matriz con arrays, difiere de la forma en que se obtiene para una lista: # Obteniendo el elemento en la fila 1 y columna 2 b[1,2]

3

7 #Se crea un array de 5x5 A = np.arange(25) A.shape = (5,5) A array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]])

Tambien se puede rebanar de forma indexada una matriz A[1:3,2:4] array([[ 7, 8], [12, 13]]) B = A[::2,::2] B array([[ 0, 2, 4], [10, 12, 14], [20, 22, 24]])

Se pueden utilizar etiquetas para los indices del array. Esta es una forma elegante y util en algunos casos. i,j=0,2 A[i,j] 2

Se pueden utilizar listas como indices de la misma forma: filas = [0,2,4] columnas = [1,2,3] A[filas] array([[ 0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24]]) A[filas,columnas] array([ 1, 12, 23])

4

Los indices pueden ser datos booleanos, es decir TRUE o FALSE mask_1 = np.array([True,True,True,True,True]) mask_2 = np.array([True,False,True,False,True]) A[mask_1] array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]) A[np.array([False,True])] array([[5, 6, 7, 8, 9]]) A[mask_2] array([[ 0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24]]) x = np.arange(5) print x mask=np.array([True,True,False,True,False],dtype=bool) x[mask]

[0 1 2 3 4] array([0, 1, 3])

Esto es util cuando se quieren evaluar condiciones en el array. Por ejemplo: filtrar entradas a = np.arange(0,20) a array([ 0, 1, 2, 3, 17, 18, 19])

4,

5,

6,

7,

8,

9, 10, 11, 12, 13, 14, 15, 16,

# Se verifican que numeros son mayores a 7. El resultado es un array con datos booleanos mask = a>7 mask array([False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True], dtype=bool)

5

True, True,

#Se evalua el array con la mascara obtenida, a[mask] # se muestran solo los elementos que cumplieron la condicion array([ 8,

9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])

Si se quieren obtener los numero que sean mayor que una cota inferior (x > xmin) y menor que una cota superior (x < xmax), se multiplica el resultado de las dos condiciones evaluadas por separado. mask1 = a>7 mask1 array([False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True], dtype=bool)

True, True,

mask2 = a7)*(a