Подтвердить что ты не робот

Удалить определенный столбец в 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]])

Я удаляю третий столбец как

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

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

4b9b3361

Ответ 1

Если вы хотите удалить несколько столбцов, вы просто передаете индексы столбцов, которые хотите удалить в виде списка, например:

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

Ответ 2

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

Ответ 3

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

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