Skip to content Skip to sidebar Skip to footer

Python: How To Get Values Of An Array At Certain Index Positions?

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 sh

Solution 1:

Just index using you ind_pos

ind_pos = [1,5,7]
print (a[ind_pos]) 
[888516]


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

In [56]: import numpy as np

In [57]: arr = np.array(a)

In [58]: ind_pos = [1,5,7]

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

Solution 2:

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 ]

Solution 3:

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)

Solution 4:

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

Solution 5:

your code would be

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

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

print(ind_pos)

you get [88, 85, 16]

Post a Comment for "Python: How To Get Values Of An Array At Certain Index Positions?"