简体   繁体   中英

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

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]

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

you were close

>>> print arr[[1,4,5]]
[ 200.42   34.55    1.12]
arr[[1, 4, 5]]
  1. this would works the same as arr[1],arr[4],arr[5].
  2. double square brackets will help in specifying multiple indices at once.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM