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

jestem usunięcie 3rd kolumny jakousunąć konkretną kolumnę w 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]]) 

Czy jest jakiś lepszy sposób? Prosimy o rozważenie tego problemu jako nowicjusza.

Odpowiedz

34

Jeśli kiedykolwiek chcesz usunąć więcej niż jedno kolumn, wystarczy zdać indeksy kolumn, które mają być usunięte w postaci listy, jak to:

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

świetny. dzięki. działa to jak urok. – user644745

2

coś takiego:

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]]) 
Powiązane problemy