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])
请注意,这会创建一个副本,而不是视图。
假设我有一个包含 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])
请注意,这会创建一个副本,而不是视图。