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]
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.
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.
In order to get the indices of N maximum values in a NumPy array, we can use the argsort() function.
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])
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])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With