numpy 数组中的不规则 slicing/copying

irregular slicing/copying in numpy array

假设我有一个包含 10 个元素的数组,例如a=np.arange(10)。如果我想用原始数组的第 1、3、5、7、9、10 个元素创建另一个数组,即 b=np.array([0,2,4,6,8,9]),我怎样才能有效地做到这一点?

谢谢

a[[0, 2, 4, 6, 8, 9]]

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

请注意,这会创建一个副本,而不是视图。