首页 > 行业资讯 > NumPy教程-numpy.where()在 Python 中的使用

NumPy教程-numpy.where()在 Python 中的使用

时间:2023-10-05 来源: 浏览:

NumPy教程-numpy.where()在 Python 中的使用

点击关注 Python架构师
Python架构师

gh_1d7504e4dee1

回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。

收录于合集
#numpy 25
#NumPy教程 25
#NumPy 25
#python web教程 85
#python教程 173
整理: python架构师
NumPy模块提供了一个函数numpy.where(),用于基于条件选择元素。它根据条件从a或b中选择元素。
例如,如果在numpy.where()中传递所有参数 -> condition、a 和 b,它将根据条件产生的布尔数组中的值,从a和b中选择元素。
如果只提供条件,这个函数是函数np.asarray (condition).nonzero()的简写。尽管直接使用nonzero是更好的选择,因为它对子类的行为是正确的。

语法:

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

参数:

numpy.where() 函数有以下参数:
condition: array_like, bool
如果这个参数设置为 True,则返回 x,否则返回 y。
x, y: array_like:
这个参数定义了要选择的值。x、y 和 condition 需要能够广播到某个形状。

资源分享

点击领取:最全Python资料合集

返回值:

这个函数返回一个数组,其中包含满足条件为 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: 广播 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 的值,否则打印在 where() 函数中作为参数传递的 y 的值。

示例 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] ])

 
热门推荐
  • 10个好用到爆的"反爬虫"措施!

  • NumPy教程-numpy.log()在 Python 中的使用

  • Python哪种方式循环最快,或许颠覆你的认知!

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐