如何在numpy数组中获取非连续索引的元素?

时间:2018-01-19 16:16:46

标签: python numpy

假设我有一个numpy数组:

arr = np.array([1,2,3,4,4,5,3,2,10])

和索引数组:

indices = np.array([0,1,4,6])

我可以编写一个完成这项工作的简单函数,但我想知道numpy是否有像np.get(arr, indices)这样的内置函数,在这种情况下返回np.array([1,2,4,3]

1 个答案:

答案 0 :(得分:1)

这称为Advanced Indexing

  当选择对象是非元组序列对象,ndarray(数据类型为integer或bool)或具有至少一个序列对象或ndarray(数据类型为integer或bool)的元组时触发

。有两种类型的高级索引:整数和布尔值。

     

高级索引始终返回数据的副本(与返回视图的基本切片形成对比)。

您的情况是整数高级索引,您可以在其中传递要检索的索引数组。正如sascha在评论中指出的那样,这将创建数据的副本,因此新数组将独立于原始数组存在(即,写入它不会修改原始数组)。