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

pbossiut  于 2022-12-13  发布在  其他
关注(0)|答案(4)|浏览(164)

我有一个NumPy数组,看起来像这样:

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

如何通过索引从该数组中获取多个值?
例如,如何获取索引位置1、4和5处的值?
我试着这样做,这是不正确的:

arr[1, 4, 5]
waxmsbnn

waxmsbnn1#

你很接近

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

roejwanj2#

arr[[1, 4, 5]]

1.这将与arr[1]、arr[4]、arr[5]的工作方式相同。
1.两个方括号有助于一次指定多个索引。

cdmah0mi

cdmah0mi3#

这样试试看:

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

对于多维数组:

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

s4n0splo4#

另一种解决方案是使用np.take,如https://numpy.org/doc/stable/reference/generated/numpy.take.html中所指定的

a = [4, 3, 5, 7, 6, 8]
indices = [0, 1, 4]
np.take(a, indices)
# array([4, 3, 6])

相关问题