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?"