¿Cómo obtener todas las diagonales 2D de una array 3D NumPy?

Veamos el programa para obtener todas las diagonales 2D de una array 3D NumPy. Entonces, para esto estamos usando la función numpy.diagonal() de la biblioteca NumPy. Esta función devuelve diagonales especificadas de una array n-dimensional. 

Sintaxis: numpy.diagonal(a, eje1, eje2)
Parámetros: 

  • a: representa una array de la que se deben tomar las diagonales 
  • axis1: representa el primer eje que se tomará para el subarreglo 2-d 
  • axis2: representa el segundo eje que se tomará para el subarreglo 2-d 

Retorno: array de elementos diagonales.

Ahora, veamos un ejemplo:

Ejemplo 1:

Python3

# Import the numpy package
import numpy as np
  
# Create 3D-numpy array
# of 4 rows and 4 columns
arr = np.arange(3 * 4 * 4).reshape(3, 4, 4)
  
print("Original 3d array:\n", 
      arr)
  
# Create 2D diagonal array
diag_arr = np.diagonal(arr, 
                       axis1 = 1,
                       axis2 = 2)
  
print("2d diagonal array:\n", 
      diag_arr)

Producción:

Original 3d 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 25 26 27]
  [28 29 30 31]]

 [[32 33 34 35]
  [36 37 38 39]
  [40 41 42 43]
  [44 45 46 47]]]
2d diagonal array:
 [[ 0  5 10 15]
 [16 21 26 31]
 [32 37 42 47]]

Ejemplo 2:

Python3

# Import the numpy package
import numpy as np
  
# Create 3D numpy array
# of 3 rows and 4 columns
arr = np.arange(3 * 3 * 4).reshape(3, 3, 4)
  
print("Original 3d array:\n", 
      arr)
  
# Create 2D diagonal array
diag_arr = np.diagonal(arr, 
                       axis1 = 1,
                       axis2 = 2)
  
print("2d diagonal array:\n",
      diag_arr)

Producción:

Original 3d 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 25 26 27]
  [28 29 30 31]
  [32 33 34 35]]]
2d diagonal array:
 [[ 0  5 10]
 [12 17 22]
 [24 29 34]]

Ejemplo 3:

Python3

# Import the numpy package
import numpy as np
  
# Create 3D numpy array
# of 5 rows and 6 columns
arr = np.arange(3 * 5 * 6).reshape(3, 5, 6)
print("Original 3d array:\n",
      arr)
  
# Create 2D diagonal array
diag_arr = np.diagonal(arr, 
                       axis1 = 1,
                       axis2 = 2)
  
print("2d diagonal array:\n",
      diag_arr)

Producción:

Original 3d 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 25 26 27 28 29]]

 [[30 31 32 33 34 35]
  [36 37 38 39 40 41]
  [42 43 44 45 46 47]
  [48 49 50 51 52 53]
  [54 55 56 57 58 59]]

 [[60 61 62 63 64 65]
  [66 67 68 69 70 71]
  [72 73 74 75 76 77]
  [78 79 80 81 82 83]
  [84 85 86 87 88 89]]]
2d diagonal array:
 [[ 0  7 14 21 28]
 [30 37 44 51 58]
 [60 67 74 81 88]]

Publicación traducida automáticamente

Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *