I have a numpy array like this:

``````a = [0,88,26,3,48,85,65,16,97,83,91]
``````

How can I get the values at certain index positions in ONE step? For example:

``````ind_pos = [1,5,7]
``````

The result should be:

``````[88,85,16]
``````

Just index using you `ind_pos`

``````ind_pos = [1,5,7]
print (a[ind_pos])
[88 85 16]

In : a = [0,88,26,3,48,85,65,16,97,83,91]

In : import numpy as np

In : arr = np.array(a)

In : ind_pos = [1,5,7]

In : arr[ind_pos]
Out: array([88, 85, 16])
``````

The one liner “no imports” version

``````a = [0,88,26,3,48,85,65,16,97,83,91]
ind_pos = [1,5,7]
[ a[i] for i in ind_pos ]
``````

Although you ask about `numpy` arrays, you can get the same behavior for regular Python lists by using `operator.itemgetter`.

``````>>> from operator import itemgetter
>>> a = [0,88,26,3,48,85,65,16,97,83,91]
>>> ind_pos = [1, 5, 7]
>>> print itemgetter(*ind_pos)(a)
(88, 85, 16)
``````

You can use index arrays, simply pass your `ind_pos` as an index argument as below:

``````a = np.array([0,88,26,3,48,85,65,16,97,83,91])
ind_pos = np.array([1,5,7])

print(a[ind_pos])
# [88,85,16]
``````

Index arrays do not necessarily have to be numpy arrays, they can be also be lists or any sequence-like object (though not tuples).

your code would be

`a = [0,88,26,3,48,85,65,16,97,83,91]`

`ind_pos = [a,a,a]`

`print(ind_pos)`

you get [88, 85, 16]