📜  Python| numpy numpy.choose()(1)

📅  最后修改于: 2023-12-03 15:04:21.095000             🧑  作者: Mango

Python中的numpy.choose()

numpy.choose()是一个在numpy中非常有用的函数。它实现了从指定的选择列表中选择序列的功能。通常,这些序列表示不同的方案,choose()函数是为了根据某些条件选择其中的一个方案。

语法
numpy.choose(a, choices, out=None, mode='raise')

参数:

  • a:int型或者可转化为int型的数组。表示在choices序列中选择一个序列的条件。a必须是一个整数,表示在序列choices中选择一个序列的索引。a可以是一个整数数组,每个整数代表choices中的一个序列。

  • choices:序列的列表,其中的每个序列必须具有相同的形态。这些序列构成一个chooser,这样根据a所表示的索引就可以在这些选择中进行选择。

  • out:可选参数,表示选择的结果存储的位置。如果out未提供,则将创建一个输出数组并返回。

  • mode:可选的字符串参数,表示有关如何处理a的值的规则。默认值为'raise',表示如果a超出了可接受的范围,则引发一个“ValueError”。

返回值

选择的结果将返回存储在新建的输出数组或给定的输出数组out中。输出的形状将常常是choices[0].shape,除非out被提供且与a有相同的形状。

示例

以下示例演示了如何使用numpy.choose()选择序列。

import numpy as np

# a为一个整数,表示在choices中选择一个序列
a = 1
choices = [[0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24], [30, 31, 32, 33, 34], [40, 41, 42, 43, 44]]

result1 = np.choose(a, choices)
print("result1: ", result1)

# a为一维整数数组,每个整数代表choices中的一个序列
a = np.array([3, 1, 2, 0, 3])
choices = [[0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24], [30, 31, 32, 33, 34], [40, 41, 42, 43, 44]]

result2 = np.choose(a, choices)
print("result2: ", result2)

输出结果为:

result1:  [10 11 12 13 14]
result2:  [33 11 22  3 34]

本示例中,a表示在choices序列中选择一个序列的条件。在第一次调用中,a的值是1,因此choose()返回choices[1],即[10 11 12 13 14]

在第二次调用中,a是一个包含 [3, 1, 2, 0, 3] 的整数数组。因此,choose()返回一个包含在choices序列中选择的序列的元素的数组。

结论

numpy.choose()是在numpy模块中非常有用的一个函数,它允许根据某些条件从一组序列中选择一个序列。我们可以使用它来设计更复杂的算法,例如基于条件选择决策树模型的分类问题。