教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

大数据培训:将条件逻辑转为数组运算

更新时间:2022年09月26日15时07分 来源:传智教育 浏览次数:

好口碑IT培训

  NumPy数组可以将许多数据处理任务转换为简洁的数组表达式,它处理数据的速度要比内置的Python循环快了至少一个数量级,所以,我们把数组作为处理数据的首选。接下来,本节重点讲下将条件逻辑转为数组运算。

  Numpy的where()函数是三元表达式x if condition else y的矢量化版本。

  假设有两个数值类型的数组和一个布尔类型的数组,具体如下:

In [98]: arr_x=np.array([1, 5, 7])
In [99]: arr_y=np.array([2, 6, 8])
In [100]: arr_con=np.array([True, False, True])

  现在提一个需求,即当arr_con的元素值为True时,从arr_x数组中获取一个值,否则从arr_y数组中获取一个值。使用where()函数实现的方式如下所示。

In [101]: result=np.where(arr_con, arr_x, arr_y)
In [102]: result
Out[102]: array([1, 6, 7])

  上述代码中调用np.where()时,传入的第1个参数arr_con表示判断条件,它可以是一个布尔值,也可以是一个数组,这里传入的是一个布尔数组。

  当满足条件(从arr_con中取出的元素为True)时,则会获取arr_x数组中对应位置的值。由于arr_con中索引为0、2的元素为True,所以取出arr_x中相应位置的元素1、7。

  当不满足条件(从arr_con中取出的元素为False)时,则会获取arr_y数组中对应位置的值。由于arr_con中索引为1的元素为False,所以取出arr_y中相应位置的元素6.

  从输出结果可以看出,使用where()函数进行数组运算后,返回了一个新的数组。

0 分享到:
和我们在线交谈!