2013-05-19 5 views
19
>>> 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]]) 

Я удаление 3-й столбец какудалить определенный столбец в Numpy

>>> 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]]) 

Есть ли лучший способ? Пожалуйста, считайте, что это новичок.

ответ

34

Если вы когда-либо хотите удалить несколько столбцов, вы просто передать индексы столбцов, которые вы хотите исключить, так как список, как это:

>>> 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]]) 
8
>>> 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]]) 
+1

отлично. Благодарю. это работает как шарм. – user644745

2

Что-то вроде этого:

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]])