Error de índice, eliminar fila de la matriz si la columna tiene un valor

Tengo una matriz ‘x’ con cuatro columnas.

Para cada fila, si la 4ta columna tiene un valor de 1, entonces quiero eliminar esa fila completa:

x = np.array([[1,2,3,0],[11,2,3,24],[1,22,3,1],[1,22,3,1], [5,6,7,8], [9,10,11,1]]) for i in range(0,len(x)): if x[i][4]==0: x=np.delete(x, i,0) 

Obtuve el siguiente error:

Rastreo (llamadas recientes más última):
Archivo “”, línea 2, en
si x [i] [4] == 0:
IndexError: índice fuera de límites

Puedes usar indexación :

 >>> x[x[:,3] != 1] array([[ 1, 2, 3, 0], [11, 2, 3, 24], [ 5, 6, 7, 8]]) 

Estás tratando de hacer referencia a la cuarta columna con [4], pero como se basa en cero, en realidad es [3]

El índice de una lista comienza desde 0 . Entonces, como hay 4 elementos, los índices son: 0,1,2,3 . Entonces, si tienes que marcar el 4to elemento, usa el índice 3.

 if x[i][3]==0: pass 

Esto funcionara