python数据分析numpy基础之where三元表达式的矢量化
off999 2024-11-07 11:36 23 浏览 0 评论
1 python数据分析numpy基础之where三元表达式的矢量化
python的numpy库的where()函数返回满足条件的索引值,或者返回满足条件和不满足条件的元素值。
用法
numpy.where(condition, [x, y], /)描述
如果x和y没传,则返回满足条件condition的索引值组成的一维数组;
如果x和y有传,则condition为True取x,condition为False取y。
入参
condition:必选,array_like,bool
x,y:可选,array_like
condition为True,则从x取对应索引的元素,
condition为False,则从y取对应索引的元素。
出参
返回一维数组组成的元组,由满足条件的索引组成,或由x和y的元素组成。
1.1 入参condition
numpy.where()的入参condition为必选入参,表示产生索引或元素的条件。
如果condition作用于一维数组,则返回数组为一维数组的索引;
如果condition作用于二维数组,则返回2个一维数组组成的元组,第1个数组表示第1位索引,第2个数组表示第2为索引。
>>> import numpy as np
# 创建一维数组
>>> ar1=np.array([1,11,2,12,3,5,6,8,10])
>>> ar1
array([ 1, 11, 2, 12, 3, 5, 6, 8, 10])
# 只送condition
# 返回ar1中元素大于5的索引组成的一维数组组成的元组
>>> np.where(ar1>5)
(array([1, 3, 6, 7, 8], dtype=int64),)
# 创建二维数组
>>> ar2=np.array([[1,12,3,13,5],[11,6,15,8,9]])
>>> ar2
array([[ 1, 12, 3, 13, 5],
[11, 6, 15, 8, 9]])
# 返回ar2中大于8的元素的索引,
# 元组的第1个数组为满足条件的元素的第1位索引
# 元组的第2个数组为满足条件的元素的第2位索引
# 元组的第1个和第2个数组一一对应组成元素的第1和第2位索引
# 12的索引为ar2[0,1],存放在第1个数组的0和第2个数组的1
>>> np.where(ar2>8)
(array([0, 0, 1, 1, 1], dtype=int64), array([1, 3, 0, 2, 4], dtype=int64))1.2 入参x,y
numpy.where()的入参x,y为可选入参,表示要获取返回值的地方,可以为标量或数组。
condition为True,则True位置的元素从x取对应索引的元素或值,
condition为False,则False位置的元素从y取对应索引的元素或值。
x和y可以都是标量,都是数组,或者标量和数组的组合。
>>> import numpy as np
# 创建二维数组
>>> con=np.array([[1,12,3,13,5],[11,6,15,8,9]])
>>> con
array([[ 1, 12, 3, 13, 5],
[11, 6, 15, 8, 9]])
# con元素大于8的位置取值为'>8'
# con元素小于8的位置取值为'<=8'
# x,y为标量
>>> np.where(con>8,'>8','<=8')
array([['<=8', '>8', '<=8', '>8', '<=8'],
['>8', '<=8', '>8', '<=8', '>8']], dtype='<U3')
# x,y为数组
>>> ar1=np.array([1,2,3,0,5])
>>> ar2=np.array([11,12,13,10,15])
>>> con=np.array([6,7,8,9,10])
# con>8的元素索引位置取ar1对应索引位置的元素,否则取ar2的元素
>>> np.where(con>8,ar1,ar2)
array([11, 12, 13, 0, 5])
>>> con>8
array([False, False, False, True, True])
# x,y为标量和数组的组合
>>> np.where(con>8,'>8',con)
array(['6', '7', '8', '>8', '>8'], dtype='<U11')2 END
本文首发微信公众号:梯阅线条,
更多内容参考python知识分享或软件测试开发目录。
相关推荐
- 德国二战游戏单机手游(以德军为视角的二战手机游戏)
-
元帅,私奔吧甜文穿越二战隆美尔第三帝国之未来战争帝国雄心帝国苍穹德意志的荣耀狗运战神普鲁士雄鹰战起1938复活战斗在第三帝国《我的二战不可能这么萌》作者:月面书评:异界后宫二战军事穿越流。本书...
- 酷我音乐官方免费下载安装(酷我音乐官方免费下载安装app)
-
要下载手机铃声,首先需要打开酷我音乐APP,然后点击“我的”页面,再选择“铃声中心”进入铃声下载界面。在这里,你可以根据喜好选择不同类型的铃声,比如热门、经典、儿歌等。找到心仪的铃声后,点击右侧的下载...
- 下载免费的小说(免费下载小说软件推荐)
-
http://www.ziweishuwu.comhttp://www.txtbook.com.cn/https://www.xiashutxt.com/https://www.jjxs.la/都可以...
- 安装播放器 app下载(安装播放器软件)
-
1.首先,打开浏览器,访问播放器官网,找到下载地址,点击下载。2.点击下载后,会弹出一个提示框,点击“保存”,然后把文件保存到本地磁盘。3.打开保存的文件,双击运行安装程序,按照提示安装播放器。4.安...
- 游戏蜂窝(游戏蜂窝免root)
-
人人蜂窝和游戏蜂窝有以下几点区别:1.目标用户不同:人人蜂窝是一家提供移动网络服务的运营商,主要面向一般用户提供通信服务;而游戏蜂窝是一个游戏信息平台,主要为游戏爱好者提供游戏相关资讯和社交互动。2...
- 正版win7旗舰版官网(win7旗舰版官方)
-
从来就没有win7官网这样的说法,这是因为win7本身就是微软公司旗下产品,是Windows系统的一个版本而已,并不存在win7官网,当然主要的相关资源还是可以到微软官网去查找下载。首先,官网下载的W...
- 打米传奇手游可提现(打米传奇手游怎么提现)
-
个人感觉有些传奇游戏还是可以提现的,也就是现在所谓的搬砖服,不过想要提现也是需要付出的,普通的游戏玩家一天可以得到的收益并不是很高。想要获得高额收益是需要投资的。个人建议投资之前最好先观望一下,免的造...
- 虚拟号码发送短信平台(虚拟手机号收短信平台)
-
用虚拟手机号给别人发送短信的方法如下1、下载安装定时达人软件(安卓手机端),进入首页,点击下部的“添加新任务”,左边选择“通信”项。2、这时就可以看到右边的“虚拟电话”和“虚拟短信”选项。3、点击进入...
- 免费阅读软件(一念永恒小说免费阅读软件)
-
追书免费全本小说、追书神器免费版、易追书、全本追书阅读器等软件都是比较好用的免费读书软件。具体介绍如下: 1、追书免费全本小说,免费阅读热门网络小说; 2、追书神器免费版,有海量的书库,更...
- qq聊天软件免费下载安装(qq聊天应用下载)
-
首先右击你想下载的聊天记录的好友头像,这时把鼠标放到“聊天记录”上,你会看到三个选项,点击“查看聊天记录”,进入“信息管理器”界面。界面分为两部分,左边是你的好友名单,右边是详细的聊天记录,同...
- 下载官方浏览器(下载官方浏览器安装到桌面)
-
当我们在使用ie浏览器时或是操作电脑时,由于偶尔的不小心或是误点了某些安全提示,可能会导致ie浏览器无法使用下载功能,而导致ie浏览器无法下载文件和软件。首先我们来确认是安全软件阻止还是防火墙阻止还是...
- 万能种子搜索神器app(万能种子搜索神器2.9.9)
-
你好,万能播放器是一款功能强大的音视频播放软件,通常需要购买激活码或者注册码来激活使用。具体的激活方式可能因软件版本和开发者而异,以下是一般的激活步骤:1.购买激活码:前往官方网站或授权渠道购买激活...
- word免费版电脑版(word office免费版)
-
不同版本也不一样1.目前电脑中office365是订阅制,没有永久免费的政策。office2016与office2019可以永久激活使用。2、永久激活版本在电脑中只要自带office2016或者off...
- 可以免费下载音乐的app(可以免费下载音乐的软件并传到U盘)
-
目前市场上有不少免费的音乐下载软件,比如QQ音乐、网易云音乐等。这些免费的音乐下载软件一般会提供不同种类的音乐,从流行歌曲到经典老歌都可以找到,除此之外,这些软件还会针对用户进行推荐,根据用户的音乐口...
- office2007免安装绿色版(office2007绿色完整版)
-
把你的绿色版删除!附件的压缩包里有微软提供的卸载程序!运行一遍就可以了!office2007哪个版本好?针对office2007哪个版本好,office2007的版本主要有office2007官方下载...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
