假设我有一个包含10个元素的数组,例如a=np.arange(10)
。如果我想创建另一个包含原始数组的第1,第3,第5,第9,第10个元素的数组,即b=np.array([0,2,4,6,8,9])
,我该如何有效地完成它?
感谢
答案 0 :(得分:1)
a[[0, 2, 4, 6, 8, 9]]
索引a
,其中包含表示所需索引的列表或数组。 (不是1, 3, 5, 7, 9, 10
,因为索引从0开始。)索引和值在这里有点混淆,所以有一个不同的例子:
>>> a = np.array([5, 4, 6, 3, 7, 2, 8, 1, 9, 0])
>>> a[[0, 2, 4, 6, 8, 9]]
array([5, 6, 7, 8, 9, 0])
请注意,这会创建副本,而不是视图。 Also, note that this might not generalize to multiple axes the way you expect.