numpy selecting multiple columns excluding certain ones – concise way

Question:

I have a short question about indexing in numpy. I’m trying to select subset of columns of a 2D array. For example, if I wanted columns other than 3, 6 and 9, then I would plug in a list of indicies excluding those positions:

x = np.arange(20).reshape(2,10)
x[:, [i for i in range(len(x[0])) if i not in [3, 6, 9]]]
[[ 0  1  2  4  5  7  8]
 [10 11 12 14 15 17 18]]

The method works but I was wondering if there’s more concise way of doing the same thing?

Asked By: nightstand

||

Answers:

One way is with numpy.delete()

import numpy as np
x = np.arange(20).reshape(2,10)
np.delete(x, [3,6,9], axis=1)


[[ 0  1  2  4  5  7  8]
 [10 11 12 14 15 17 18]]
Answered By: nlivingstone
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.