numpy - where()函数

numpy - where()函数 首页 / Numpy入门教程 / numpy - where()函数

NumPy模块提供了一个numpy.where()函数,用于根据条件选择元素。它返回根据条件从a或b中选择的元素。

例如,如果所有参数-> condition,则将a&b传入numpy.where(),则它将根据条件产生的布尔数组中的值返回从a&b中选择的元素。

如果仅提供条件,则此函数是函数np.asarray(condition).nonzero()的简写。尽管应该直接首选非零值,因为它对于子类的行为正确。

语法:

numpy.where(condition[, x, y])

参数:

这些是numpy.where()函数中的以下参数:

condition:array_like,boolean

如果此参数设置为True,则产生x,否则产生y。

x,y:array_like:

此参数定义从中选择的值。 x,y和条件需要广播为某种形状。

返回值:

此函数返回条件为True的x元素和其他地方y元素的数组。

示例1:np.where()

import numpy as np
a=np.arange(12)
b=np.where(a<6,a,5*a)
b

在上面的代码中

  • 我们导入了别名为np的numpy。
  • 我们已经使用np.arange()函数创建了一个数组'a'。
  • 我们已经声明了变量'b'并分配了np.where()函数的返回值。
  • 我们在函数中传递了数组'a'。
  • 最后,我们尝试打印b的值。

在输出中,范围从0到5的值保持与条件相同,其他值已乘以5。

无涯教程网

输出:

array([ 0,  1,  2,  3,  4,  5, 30, 35, 40, 45, 50, 55])

示例2:对于多维数组

import numpy as np
a=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:Broadcasting x,y和condition

import numpy as np
x, 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的值。

在输出中,如果满足条件,则将x值与y值进行比较,然后将其输出x值,否则将输出y值,该值已作为where()函数中的参数传递。

示例4:广播(Broadcasting)特定值

x=np.array([[0,1,2],[0,2,5],[0,4,8]])
y=np.where(x

输出:

array([[ 0,  1,  2],
       [ 0,  2, -2],
       [ 0, -2, -2]])

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

邱岳的产品实战 -〔邱岳〕

MySQL实战45讲 -〔林晓斌〕

TensorFlow快速入门与实战 -〔彭靖田〕

打造爆款短视频 -〔周维〕

如何读懂一首诗 -〔王天博〕

搞定音频技术 -〔冯建元 〕

去无方向的信 -〔小麥〕

Serverless进阶实战课 -〔静远〕

深入拆解消息队列47讲 -〔许文强〕

好记忆不如烂笔头。留下您的足迹吧 :)