📅  最后修改于: 2023-12-03 15:04:21.095000             🧑  作者: Mango
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
模块中非常有用的一个函数,它允许根据某些条件从一组序列中选择一个序列。我们可以使用它来设计更复杂的算法,例如基于条件选择决策树模型的分类问题。