¿Cómo obtener valores de una array NumPy en ciertas posiciones de índice?

A veces, necesitamos eliminar valores de la array Numpy de origen y agregarlos en índices específicos en la array de destino. En NumPy, tenemos esta flexibilidad, podemos eliminar valores de una array y agregarlos a otra array. Podemos realizar esta operación usando la función numpy.put() y se puede aplicar a todas las formas de arrays como 1-D, 2-D, etc.

Ejemplo 1:

Python3

# Importing Numpy module
import numpy as np
  
# Creating 1-D Numpy array
a1 = np.array([11, 10, 22, 30, 33])
print("Array 1 :")
print(a1)
  
a2 = np.array([1, 15, 60])
print("Array 2 :")
print(a2)
  
print("\nTake 1 and 15 from Array 2 and put them in\
1st and 5th position of Array 1")
  
a1.put([0, 4], a2)
  
print("Resultant Array :")
print(a1)

Producción:

En el ejemplo anterior, tomamos dos arrays 1-D y transferimos valores de una array a otra en posiciones específicas.  

Ejemplo 2:

Python3

# Importing Numpy module
import numpy as np
  
# Creating 2-D Numpy array
a1 = np.array([[11, 10, 22, 30],
               [14, 58, 88, 100]])
  
print("Array 1 :")
print(a1)
  
a2 = np.array([1, 15, 6, 40])
print("Array 2 :")
print(a2)
  
print("\nTake 1, 15 and 6 from Array 2 and put them in 1st,\
4th and 7th positions of Array 1")
  
a1.put([0, 3, 6], a2)
  
print("Resultant Array :")
print(a1)

Producción:

En el ejemplo anterior, tomamos dos arrays diferentes y transferimos valores de una array 1-D a una array 2-D en posiciones específicas.  

Ejemplo 3:

Python3

# Importing Numpy module
import numpy as np
  
# Creating 3-D Numpy array
a1 = np.array([[[11, 25, 7], [30, 45, 55], [20, 45, 7]],
               [[50, 65, 8], [70, 85, 10], [11, 22, 33]],
               [[19, 69, 36], [1, 5, 24], [4, 20, 9]]])
  
  
print("Array 1 :")
print(a1)
  
# Creating 2-D array
a2 = np.array([[1, 15, 10],
               [6, 40, 50],
               [11, 5, 10]])
  
print("\nArray 2 :")
print(a2)
  
print("\nTake 1, 15, 10, 6, 40 and 50 from Array 2 and put\
them in 1st, 3rd, 5th, 9th, 11th and 15th positions of Array 1")
  
a1.put([0, 2, 4, 8, 10, 14], a2)
  
print("Resultant Array :")
print(a1)

Producción:

En el ejemplo anterior, tomamos dos arrays diferentes y transferimos valores de una array 2-D a una 3-D en posiciones específicas. Surge una pregunta, ¿qué sucederá si se producen índices fuera de los límites? Para esto, tenemos 3 modos en la función numpy.put() 

modo = {‘subir’, ‘envolver’, ‘recortar’}

  • ‘raise’: genera un error (predeterminado)
  • ‘envolver’ – envolver
  • ‘clip’ – recortar al rango

Ejemplo 4: modo de toma = ‘subir’

Python3

# Importing Numpy module
import numpy as np
  
# Creating 2-D Numpy array
a1 = np.array([[11, 10, 22],
               [14, 58, 88]])
  
print("Array 1 :")
print(a1)
  
a2 = np.array([[1, 15, 6],
               [40, 50, 70]])
  
print("Array 2 :")
print(a2)
  
print("\nTake 1 and 15 from Array 2 and put them in 1st \
and 5th positions of Array 1")
  
print("by mistake we write the index which is out of bound,\
now mode will play its role")
  
a1.put([0, 15], a2, mode='raise')
  
print("\nResultant Array :")
print(a1)

Producción:

En el ejemplo anterior, mode=’raise’ genera un error cuando los índices se salen de los límites.

Ejemplo 5: modo de toma = ‘clip’

Python3

# Importing Numpy module
import numpy as np
  
# Creating 2-D Numpy array
a1 = np.array([[11, 10, 22],
               [14, 58, 88]])
  
print("Array 1 :")
print(a1)
  
a2 = np.array([[1, 15, 6],
               [40, 50, 70]])
  
print("Array 2 :")
print(a2)
  
print("\nTake 1 and 15 from Array 2 and put them in 1st and\
5th positions of Array 1")
  
print("by mistake we write the index which is out of bound,\
now mode will play its role")
  
a1.put([0, 15], a2, mode = 'clip')
  
print("\nResultant Array :")
print(a1)

Producción:

En el ejemplo anterior, mode=’clip’ reemplaza el último elemento a lo largo del eje en lugar de generar ningún error. 

Publicación traducida automáticamente

Artículo escrito por vanshgaur14866 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 *