eliminar una columna específica en numpy

>>> arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) >>> arr array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12]]) 

Estoy borrando la tercera columna como

 >>> np.hstack(((np.delete(arr, np.s_[2:], 1)),(np.delete(arr, np.s_[:3],1)))) array([[ 1, 2, 4], [ 5, 6, 8], [ 9, 10, 12]]) 

¿Hay alguna manera mejor? Por favor considere esto como una pregunta de novatos.

Si alguna vez desea eliminar más de una columna, simplemente pase los índices de las columnas que desea eliminar como una lista, como esto:

 >>> a = np.arange(12).reshape(3,4) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> np.delete(a, [1,3], axis=1) array([[ 0, 2], [ 4, 6], [ 8, 10]]) 
 >>> import numpy as np >>> arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) >>> np.delete(arr, 2, axis=1) array([[ 1, 2, 4], [ 5, 6, 8], [ 9, 10, 12]]) 

Algo como esto:

 In [7]: x = range(16) In [8]: x = np.reshape(x, (4, 4)) In [9]: x Out[9]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) In [10]: np.delete(x, 1, 1) Out[10]: array([[ 0, 2, 3], [ 4, 6, 7], [ 8, 10, 11], [12, 14, 15]])