当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy choose方法用法及代码示例


Numpy 的 choose(~) 方法根据输入数组的子集构造一个新数组。选择子集的方式非常独特,通过示例进行解释比通过文字进行解释要好得多,所以请查看下面的示例!

参数

1.a | array-likeint

要提取的整数索引数组。

2. choices |数组序列

超级组。

3. out | Numpy array | optional

用于放置提取的子集的 Numpy 数组。

4. mode | string | optional

如何处理索引越界:

模式

说明

raise

抛出一个错误。

wrap

围绕数组进行另一个循环。

clip

获取数组的最后一个元素。

默认情况下,mode="raise"

返回值

包含指定子集的 Numpy 数组。

例子

一维数组

要从一维数组中提取第一个和第三个索引:

a = np.array([4,5,6,7])
np.choose([1,3], a)



array([5, 7])

二维数组

a = np.array([[4,5,6],[7,8,9],[10,11,12]])
np.choose([1,0,1], a)



array([ 7,  5, 9])

在这里,我们按顺序执行以下操作:

  • 提取 1+1=2nd 数组的第 0 个索引处的值(即 [7,8,9]),即 7。

  • 提取 0+1=1st 数组的第一个索引处的值(即 [4,5,6]),即 5。

  • 提取 1+1=2nd 数组的第二个索引处的值(即 [7,8,9]),即 9。

第一个参数 [1,0,1] 只意味着我们要从索引 1、0 和 1 处的数组中提取一个值。将选择的具体值取决于顺序:

  • 结果数组中的第一个元素将是位于索引 1 处的数组的第 0 个索引。

  • 结果数组中的第二个元素将是位于索引 0 处的数组的第一个索引。

  • 等等。

这是另一个测试你的理解的例子:

a = np.array([[4,5,6],[7,8,9],[10,11,12]])
np.choose([2,0,1], a)



array([10,  5,  9])

不同模式

增加

mode 的默认参数值为 raise:

a = np.array([7,8,9])
np.choose([4], a, mode="raise")



ValueError: invalid entry in choice array

在这里,我们收到错误,因为我们指定的索引 (4) 超出范围。

包裹
a = np.array([7,8,9])
np.choose([4], a, mode="wrap")



array([8])

这里,由于索引 4 不存在,所以我们围绕数组进行另一个循环; 4-3=然后选择第一个索引。

夹子
a = np.array([7,8,9])
np.choose([4], a, mode="clip")



array([9])

在这里,由于索引 4 超出范围,我们只获取数组的最后一个元素 4。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | choose method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。