Skip to content

脥ndices#

Usar 铆ndices en arrays#

脥ndices se utulizan para indicar la posici贸n de un valor dentro de un array.

arr = np.arange(0,11)
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
arr[8] # Coger el valor del array en la posici贸n 8
# 8
arr[1:5] # Coger array entre las posiciones 1 y 5
# array([1, 2, 3, 4])
arr[:5]  # Coger array desde el inicio hasta la posici贸n indicada
# array([0, 1, 2, 3, 4])
arr[5:]  # Coger array desde la posici贸n indicada hasta el final
# array([ 5,  6,  7,  8,  9, 10])

L贸gica de ejes

脥ndices en matrices (2D arrays)#

arr_2d = np.array(([5,10,15],[20,25,30],[35,40,45]))
arr_2d
'''
array([[ 5, 10, 15],
       [20, 25, 30],
       [35, 40, 45]])
'''
arr_2d.shape
# (3, 3) = (fila, columna)
arr_2d[1] # Coger fila 1
# array([20, 25, 30])
arr_2d[1][0] # Coger elemento (1,0)
# 20
arr_2d[:2,1:] # Coger una parte de la matriz
'''
array([[10, 15],
       [25, 30]])
'''
arr_2d[2,:]
# array([35, 40, 45])

脥ndices en matrices

Broadcasting (transmisi贸n)#

Los arrays NumPy difieren de las listas normales de Python debido a su capacidad de broadcasting (transmisi贸n). Con las listas, solo puedes reasignar partes de una lista con nuevas partes del mismo tama帽o y forma. Es decir, si quisieras reemplazar los primeros 5 elementos de una lista con un nuevo valor, tendr铆as que pasar una nueva lista de 5 elementos. Con los arrays NumPy, puedes transmitir un solo valor a trav茅s de un conjunto m谩s grande de valores.

arr = np.arange(0,11)
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
arr[0:5]=100 # sobreescribe los primeros 5 valores con el valor definido
arr
# array([100, 100, 100, 100, 100,   5,   6,   7,   8,   9,  10])

seg_array = arr[6:] # seleccionar parte del array
seg_array
# array([ 6,  7,  8,  9, 10])

seg_array[:] = 99 # sobreescribir todo el array
seg_array
# array([99, 99, 99, 99, 99])

## IMPORTANTE: ESTOS CAMBIOS TAMBI脡N AFECTAN AL ARRAY PRINCIPAL, SI NO QUEREMOS QUE SEA AS脥, DEBEMOS COPIAR EL ARRAY
arr
# array([100, 100, 100, 100, 100,   5,  99,  99,  99,  99,  99])

arr_copy = arr.copy() # Copiando el array podemos trabajar en ambos de forma independiente

Condicionales de selecci贸n#

arr = np.arange(0,11)
# array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

bool_arr = arr>4
bool_arr
# array([False, False, False, False,  True,  True,  True,  True,  True, True])

arr[bool_arr] # Coger s贸lo elementos que cumplan la condici贸n
# array([ 5,  6,  7,  8,  9, 10])

x = 2
arr[arr>x]
# array([ 3,  4,  5,  6,  7,  8,  9, 10])