np.delete
использует логическую маску для удаления / выбора элементов.
In [27]: arr = np.arange(24).reshape(3,8)
In [29]: mask = np.ones(arr.shape[1], bool)
In [30]: mask[[1,3,4]] = False
In [31]: mask
Out[31]: array([ True, False, True, False, False, True, True, True])
In [32]: arr[:,mask]
Out[32]:
array([[ 0, 2, 5, 6, 7],
[ 8, 10, 13, 14, 15],
[16, 18, 21, 22, 23]])
In [33]: arr[:,mask] *= 0
In [34]: arr
Out[34]:
array([[ 0, 1, 0, 3, 4, 0, 0, 0],
[ 0, 9, 0, 11, 12, 0, 0, 0],
[ 0, 17, 0, 19, 20, 0, 0, 0]])
Легко перевернуть, например, маску для включения:
In [35]: arr[:,~mask]
Out[35]:
array([[ 1, 3, 4],
[ 9, 11, 12],
[17, 19, 20]])