¿Cuál es el método más fácil para eliminar el último elemento de una matriz numpy 2D?

Desde entonces, no podemos eliminar directamente los elementos de la matriz numpy, pero podemos obtener la información relevante por diferentes medios.

  1. Con la ayuda de rebanar

Podemos obtener los elementos específicos de la matriz utilizando el método de corte y almacenarlos en otra matriz. Rebanar no afectará su matriz original

Supongamos que tiene una matriz 1D [matemática] a = matriz ([6, 9, 1, 5, 9, 9, 5, 3, 6, 0]) [/ matemática] y desea eliminar el último elemento, entonces podemos hacer fácilmente como:

a = a [: – 1]
una
matriz ([6, 9, 1, 5, 9, 9, 5, 3, 6])

El comando anterior simplemente obtiene los elementos de la matriz del índice 0 al índice -2 [matemática] [0, -1). [/ Matemática]

Pero, ¿qué pasa si queremos eliminar los 5 de la matriz? Entonces no podemos hacer esta simple división. En cambio, necesitamos pasar los índices de números relevantes:

índice = [0,1,2,4,5,7,8,9]
a = a [índice]
una
matriz ([6, 9, 1, 9, 9, 3, 6, 0])

Por lo tanto, con la ayuda de segmentar, se puede obtener fácilmente la matriz eliminando el primer o el último elemento, pero eliminar elementos de la posición específica necesita índices de elementos de descanso. La misma regla será aplicable para la matriz multidimensional.

  1. Con la ayuda de la función numpy.delete

Pero eliminar elementos de la matriz utilizando este enfoque es incluso mucho más simple que dividir. Solo tome el mismo ejemplo, entonces en el primer caso solo necesitamos especificar el índice de ese elemento

a = numpy.delete (a, -1)
una
matriz ([6, 9, 1, 5, 9, 9, 5, 3, 6])

Para eliminar los 5 de la matriz, simplemente pase los índices de 5.

a = numpy.delete (a, [3,5])
una
matriz ([6, 9, 1, 9, 9, 3, 6, 0])

Para matriz multidimensional. Necesitamos simplemente proporcionar el eje. Supongamos que tenemos una matriz 2D

a = matriz ([[8, 1, 7, 3],
[7, 2, 4, 8],
[9, 8, 3, 2]])

Para eliminar todos los elementos de la primera fila simplemente escriba

eje = 0
a = numpy.delete (a, 1, eje)
una
matriz ([[8, 1, 7, 3],
[9, 8, 3, 2]])

Mientras, para eliminar todos los elementos de la primera columna simplemente escriba

eje = 1
a = numpy.delete (a, 1, eje)
una
matriz ([[8, 7, 3],
[7, 4, 8]
[9, 3, 2]])

Si proporcionamos axis=0 , significa que la operación es en fila y axis=1 para la operación en columna.

Utilice la opción de segmentación, ya que es el método más apropiado para eliminar filas / columnas. Solo necesitas usar:

u [:,: – 1]

Desea intacto el número de filas pero desea eliminar el último elemento de cada fila.

El código completo está aquí:

a = numpy.arange (12) .reshape (3,4)
>>> a
matriz ([[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]])
>>> a [:,: – 1]
matriz ([[0, 1, 2],
[4, 5, 6],
[8, 9, 10]])

Creo que esto debería funcionar, pero no tengo una computadora para probarlo en este momento

u [: – 1,: -1]