Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the values from a NumPy array using multiple indices

Tags:

python

numpy

I have a NumPy array that looks like this:

arr = np.array([100.10, 200.42, 4.14, 89.00, 34.55, 1.12]) 

How can I get multiple values from this array by index?

For example, how can I get the values at the index positions 1, 4, and 5?

I was trying something like this, which is incorrect:

arr[1, 4, 5] 
like image 604
user1728853 Avatar asked Jan 04 '13 17:01

user1728853


People also ask

Can you index a NumPy array?

ndarrays can be indexed using the standard Python x[obj] syntax, where x is the array and obj the selection. There are different kinds of indexing available depending on obj: basic indexing, advanced indexing and field access.

How do you access individual elements of an array in Python?

Overview. An array in Python is used to store multiple values or items or elements of the same type in a single variable. We can access elements of an array using the index operator [] . All you need do in order to access a particular element is to call the array you created.

How do you find the indices of N maximum values in a NumPy array?

In order to get the indices of N maximum values in a NumPy array, we can use the argsort() function.


2 Answers

Try like this:

>>> arr = np.array([100.10, 200.42, 4.14, 89.00, 34.55, 1.12]) >>> arr[[1,4,5]] array([ 200.42,   34.55,    1.12]) 

And for multidimensional arrays:

>>> arr = np.arange(9).reshape(3,3) >>> arr array([[0, 1, 2],        [3, 4, 5],        [6, 7, 8]]) >>> arr[[0, 1, 1], [1, 0, 2]] array([1, 3, 5]) 
like image 135
bogatron Avatar answered Sep 20 '22 10:09

bogatron


Another solution is to use np.take as specified in https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.take.html

a = [4, 3, 5, 7, 6, 8] indices = [0, 1, 4] np.take(a, indices) # array([4, 3, 6]) 
like image 28
igo Avatar answered Sep 23 '22 10:09

igo