numpy.take

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.take.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.take(a, indices, axis=None, out=None, mode='raise')[source]

从轴沿一个数组中取元素。

此函数与“花式”索引(使用数组索引数组)相同;然而,如果你需要沿给定轴的元素,它可以更容易使用。

参数:

a:array_like

源数组。

indices:array_like

要提取的值的索引。

版本1.8.0中的新功能。

还允许索引的标量。

axis:int,可选

要选择值的轴。默认情况下,使用扁平输入数组。

out:ndarray,可选

如果提供,结果将放置在此数组中。它应该是合适的形状和类型。

mode:{'raise','wrap','clip'},可选

指定超越界限索引的行为。

  • 'raise' - 引发错误(默认)
  • 'wrap' - wrap around
  • 'clip' - 剪辑到范围

“剪切”模式意味着所有过大的索引都被替换为沿着该轴的最后一个元素的索引。请注意,这将禁用使用负数的索引。

返回:

子阵列:ndarray

返回的数组与a具有相同的类型。

也可以看看

compress
使用布尔掩码获取元素
ndarray.take
等效法

例子

>>> a = [4, 3, 5, 7, 6, 8]
>>> indices = [0, 1, 4]
>>> np.take(a, indices)
array([4, 3, 6])

在此示例中,如果a是一个ndarray,则可以使用“花式”索引。

>>> a = np.array(a)
>>> a[indices]
array([4, 3, 6])

如果indices不是一维的,则输出也具有这些维度。

>>> np.take(a, [[0, 1], [2, 3]])
array([[4, 3],
       [5, 7]])