8.2.3 Manipulando elementos
Los arrays multidimensionales de NumPy están indexados por unos ejes que establecen la forma en la que debemos acceder a sus elementos. Véase el siguiente diagrama:
Figura 15: Esquema de ejes sobre los arrays de NumPy
Arrays unidimensionales
Acceso a arrays unidimensionales
Modificación a arrays unidimensionales
Borrado en arrays unidimensionales
Inserción en arrays unidimensionales
Para ambas funciones también es posible añadir varios elementos de una sola vez:
Arrays multidimensionales
Partimos del siguiente array bidimensional (matriz) para ejemplificar las distintas operaciones:
Acceso a arrays multidimensionales
Acceso a elementos individuales:
Acceso a múltiples elementos::
Acceso a filas o columnas completas:
Acceso a zonas parciales del array:
Modificación de arrays multidimensionales
Borrado en arrays multidimensionales
Truco: Tener en cuenta que axis=0 hace referencia a filas y axis=1 hace referencia a columnas tal y como describe el diagrama del comienzo de la sección.Python
Inserción en arrays multidimensionales
Añadir elementos al final del array:
Insertar elementos en posiciones arbitrarias del array:
Ejercicio
Utilizando las operaciones de modificación, borrado e inserción, convierta la siguiente matriz:
en esta:
y luego en esta:
Apilando matrices
Hay veces que nos interesa combinar dos matrices (arrays en general). Una de los mecanismos que nos proporciona NumPy es el apilado.
Apilado vertical:
Apilado horizontal:
Repitiendo elementos
Repetición por ejes: El parámetro de repetición indica el número de veces que repetimos el array completo por cada eje:
Repetición por elementos: El parámetro de repetición indica el número de veces que repetimos cada elemento del array:
Acceso por diagonal
Es bastante común acceder a elementos de una matriz (array en general) tomando como referencia su diagonal. Para ello, NumPy nos provee de ciertos mecanismos que veremos a continuación.
Para ejemplificarlo, partiremos del siguiente array:
Extracción de elementos por diagonal
La función np.diag() permite acceder a los elementos de un array especificando un parámetro k que indica la «distancia» con la diagonal principal:
Veamos cómo variando el parámetro k obtenemos distintos resultados:
Figura 16: Acceso a elementos de un array por su diagonal
Modificación de elementos por diagonal
NumPy también provee un método np.diag_indices() que retorna los índices de los elementos de la diagonal principal, con lo que podemos modificar sus valores directamente:
Truco: Existen igualmente las funciones np.triu_indices() y np.tril_indices() para obtener los índices de la diagonal superior e inferior de una matriz.