numpy数组中的不规则切片/复制

时间:2015-06-15 22:39:41

标签: arrays numpy copy scipy slice

假设我有一个包含10个元素的数组,例如a=np.arange(10)。如果我想创建另一个包含原始数组的第1,第3,第5,第9,第10个元素的数组,即b=np.array([0,2,4,6,8,9]),我该如何有效地完成它?

感谢

1 个答案:

答案 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.