我有一个如下所示的 NumPy 数组:
arr = np.array([100.10, 200.42, 4.14, 89.00, 34.55, 1.12])
如何通过索引从此数组中获取多个值?
例如,如何获取索引位置 1、4 和 5 的值?
我正在尝试这样的事情,这是不正确的:
arr[1, 4, 5]
试试这样:
>>> 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])
另一种解决方案是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])
你很亲近
>>> print arr[[1,4,5]]
[ 200.42 34.55 1.12]