更新时间:2022-10-28 来源:黑马程序员 浏览量:
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()函数进行数组运算后,返回了一个新的数组。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19