¿Cómo omitir cada índice N de la array NumPy?

En este artículo, veremos cómo omitir cada índice N de la array NumPy. Hay varias formas de acceder y omitir elementos de una array NumPy: 

Método 1: enfoque ingenuo

Se puede mantener un contador para mantener un recuento de los elementos recorridos hasta el momento, y luego, tan pronto como se encuentra la posición N, el elemento se omite y el contador se restablece a 0. Todos los elementos se agregan a una nueva lista excluyendo el Enésimo elemento de índice encontrado durante el recorrido. El tiempo requerido durante esto es equivalente a O(n), donde n es el tamaño de la array numpy. En caso de que los elementos solo deban imprimirse y no almacenarse, podemos omitir la declaración de creación de otra array.

Ejemplo:

Python3

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([1.2, 3.0, 6.7, 8.7, 8.2,
              1.3, 4.5, 6.5, 1.2, 3.0,
              6.7, 8.7, 8.2, 1.3, 4.5, 
              6.5])
  
# skipping every 4th element
n = 4
  
# declaring new list
new_arr = []
  
# maintaining cntr
cntr = 0
  
# looping over array
for i in x:
    
    # checking if element is nth pos
    if(cntr % n != 0):
        new_arr.append(i)
          
    # incrementing counter
    cntr += 1
  
print("Array after skipping nth element")
print(new_arr)

Producción:

Array después de omitir el elemento n-ésimo

[3.0, 6.7, 8.7, 1.3, 4.5, 6.5, 3.0, 6.7, 8.7, 1.3, 4.5, 6.5]

Método 2: Usar el método del módulo NumPy

La array se puede organizar primero en fragmentos de intervalos uniformemente espaciados, utilizando el método numpy.arange() .

Sintaxis: np.arange(inicio, parada, paso)

Parámetro:

  • start: Comienzo del intervalo
  • parada: Fin del intervalo
  • paso: pasos entre el inicio y el final del intervalo

Luego, se aplica el método np.mod() sobre los intervalos de la lista obtenidos y luego se calcula el módulo de cada elemento con el índice n. Los elementos de la array original cuyo módulo de salida no es 0 se devuelven como la lista final. 

Ejemplo

Python3

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([0, 1, 2, 3, 2, 5, 2, 7, 2, 9])
  
print("Original Array")
print(x)
  
# skipping third element
new_arr = x[np.mod(np.arange(x.size), 3) != 0]
  
print("Array after skipping elements : ")
print(new_arr)

Producción:

array original

[0 1 2 3 2 5 2 7 2 9]

Array después de omitir elementos:  

[1 2 2 5 7 2]

Método 3: Rebanado NumPy 

NumPy slicing es básicamente un submuestreo de datos en el que creamos una vista de los datos originales, que incurre en un tiempo constante. Los cambios se realizan en la array original y la array original completa se mantiene en la memoria. También se puede hacer una copia de los datos de forma explícita. 

Sintaxis:

arr[inicio:final:st]

Aquí, donde el inicio es el índice de inicio, el final es el índice de parada y st es el paso, donde el paso no es equivalente a 0. Y devuelve una sub-array que contiene los elementos que pertenecen al índice st respectivamente . Se supone que los índices de la array comienzan en 0. 

Ejemplo

Python

# importing required packages
import numpy as np
  
# declaring a numpy array
x = np.array([0, 1, 2, 3, 2, 5, 2, 7, 2, 9])
  
# calculating length of array
length = len(x)
  
# accessing every third element 
# from the array
print("List after n=3rd element access")
print(x[0:length:3])

Producción:

Lista después de n = acceso al tercer elemento

[0 3 2 9] 

Publicación traducida automáticamente

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