Python 如何使用多个索引从 NumPy 数组中获取值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/14162026/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-18 10:38:43  来源:igfitidea点击:

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

pythonnumpy

提问by user1728853

I have a NumPy array that looks like this:

我有一个 NumPy 数组,如下所示:

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?

例如,如何获取索引位置 1、4 和 5 处的值?

I was trying something like this, which is incorrect:

我正在尝试这样的事情,这是不正确的:

arr[1, 4, 5]

采纳答案by bogatron

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

回答by Joran Beasley

you were close

你很接近

>>> print arr[[1,4,5]]
[ 200.42   34.55    1.12]

回答by igo

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

另一种解决方案是np.take按照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])