NumPy模块提供了numpy.where()函数, 用于根据条件选择元素。它返回根据条件从a或b中选择的元素。
例如, 如果所有参数->
condition, 则将a&b传入numpy.where(), 然后它将根据条件产生的布尔数组中的值返回从a&b中选择的元素。
如果仅提供条件, 则此函数是函数np.asarray(condition).nonzero()的缩写。尽管应直接首选非零值, 因为它对于子类的行为正确。
句法:
numpy.where(condition[, x, y])
参数:
这些是numpy.where()函数中的以下参数:
条件:array_like, 布尔
【Python中的numpy.where()实例】如果此参数设置为True, 则产生x, 否则产生y。
x, y:array_like:
此参数定义从中选择的值。 x, y和条件需要广播为某种形状。
返回值:
此函数返回条件为True的x元素和其他地方y元素的数组。
示例1:np.where()
import numpy as npa=np.arange(12)b=np.where(a<
6, a, 5*a)b
在上面的代码中
- 我们导入了别名为np的numpy。
- 我们使用np.arange()函数创建了一个数组’ a’ 。
- 我们已经声明了变量” b” 并分配了np.where()函数的返回值。
- 我们已经在函数中传递了数组” a” 。
- 最后, 我们尝试打印b的值。
输出
array([ 0, 1, 2, 3, 4, 5, 30, 35, 40, 45, 50, 55])
示例2:对于多维数组
import numpy as npa=np.arange(12)b=np.where([[True, False], [True, True]], [[1, 2], [3, 4]], [[9, 8], [7, 6]])b
输出
array([[1, 8], [3, 4]])
示例3:广播x, y和条件
import numpy as npx, y = np.ogrid[:3, :4]a=np.where(x >
y, x, 10 + y)a
输出
array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]])
在上面的代码中
- 我们导入了别名为np的numpy。
- 我们使用np.arange()函数创建了一个数组’ a’ 。
- 我们声明了变量” b” 并分配了np.where()函数的返回值。
- 我们传递了一个布尔数组作为条件, 而x和y作为一个整数数组。
- 最后, 我们尝试打印b的值。
示例4:广播特定值
x=np.array([[0, 1, 2], [0, 2, 5], [0, 4, 8]])y=np.where(x<
4, x, -2)y
输出
array([[ 0, 1, 2], [ 0, 2, -2], [ 0, -2, -2]])
推荐阅读
- Python NumPy教程介绍
- NumPy trunc()方法
- NumPy tanh()方法
- python中的numpy.sum()用例
- 如何修复Windows 10视频调度程序内部错误(解决办法介绍)
- Android5.0 CheckBox颜色修改
- APPIUM Android 定位方式
- [git] -- warning: LF will be replaced by CRLF in app/app.iml. The file will have its original line e
- App性能测试之启动时间(安卓)