Numpy choose() 函数
Numpy choose() 函数用于根据选择器数组提供的索引,从多个输入数组中选取元素,从而构造新数组。此函数提供了一种灵活地组合或选择多个数组数据的方法。
choose() 函数的工作原理是将选择器数组的元素解释为输入数组列表中的索引。它会创建一个输出数组,其中每个元素都与选择器数组在输入数组中指定位置的值相对应。
语法
以下是 Numpy choose() 函数的语法 -
numpy.choose(a, choices, out=None, mode='raise')
参数
以下是 Numpy choose() 函数的参数 -
- a:一个整数数组(选择器数组),其中每个值指定从哪个输入数组中选择元素。
- choices:一个数组序列,输出数组将从该序列中构建。所有数组必须与选择器数组具有相同的形状,或者可以广播到相同的形状。
- out(可选):存储结果的位置。如果未提供,则返回一个新数组。
- mode(可选):一个字符串,用于控制如何处理选择器数组中超出范围的索引。选项包括 -
- raise:引发错误(默认)。
- wrap:环绕有效索引。
- clip:剪辑到有效索引范围。
返回类型
此函数返回一个数组,其中包含根据选择器数组从输入数组中选择的元素。
示例
以下是使用 Numpy choose() 函数从两个数组中选择元素的基本示例 -
import numpy as np selector = np.array([0, 1, 0, 1]) choices = [np.array([10, 20, 30, 40]), np.array([50, 60, 70, 80])] result = np.choose(selector, choices) print("结果数组:", result)
输出
以下是上述代码的输出 -
结果数组:[10 60 30 80]
示例:广播选择器数组
选择器数组可以广播以匹配输入数组的形状。在以下示例中,一维选择器数组与二维输入数组一起使用,广播确保选择正确 -
import numpy as np selector = np.array([0, 1]) choices = [np.array([[10, 20], [30, 40]]), np.array([[50, 60], [70, 80]])] result = np.choose(selector, choices) print("结果数组: ", result)
输出
以下是上述代码的输出 -
结果数组: [[10 60] [30 80]]
示例:使用 Mode 参数
choose() 函数中的 mode 参数控制如何处理选择器数组中超出范围的值。设置为 clip 时,任何超出范围的索引都会被限制在有效索引范围内。在以下示例中,越界索引会被裁剪 -
import numpy as np selector = np.array([[0, 1],[ 2, 3]]) choices = [np.array([10, 20]), np.array([30, 40]), np.array([50, 60])] result = np.choose(selector, choices, mode='clip') print("结果数组: ", result)
输出
以下是上述代码的输出 -
结果数组: [[10 40] [50 60]]