首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python常用函数合集2—where函数

Python常用函数合集2—where函数

作者头像
阿黎逸阳
发布2022-05-31 08:50:05
发布2022-05-31 08:50:05
1.2K0
举报

你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。

从此解放上班时间,研究更多更有效率的工作方法。进一步提升工作效率,让工作更出彩。

这不是广告,这是实锤。

Python在提升工作效率方面大放异彩,比如之前写过的【干货】用Python每天定时发送监控邮件用Python爬取京东评论做个参考等。

本文和你一起探索Python常用函数合集,让你以最短的时间明白这些函数的原理。

也可以利用碎片化的时间巩固这些函数,让你在处理工作过程中更高效。

本文目录

  1. where函数的定义
  2. where函数实例

一、where函数的定义

代码语言:javascript
复制
where函数是numpy库中的,通常需要先加载numpy库,再调用该函数。函数的基本调用语法有两种,一种是:
import numpy as np
np.where(arry)

此时,np.where函数输出arry中“真”值的坐标(‘真’也可以理解为非0)。
或者说np.where函数从arry中返回满足特定条件的元素。比如,它会返回满足特定条件数值的索引位置。
另一种是:
import numpy as np
np.where(cond, x, y)
此时,np.where函数满足cond条件输出x,不满足输出y。
为了让大家对where函数定义有更清晰的理解,接下来以具体实例进行阐述,方便大家理解记忆。



二、where函数实例

例1:找出数列中大于某个数的位置索引

代码语言:javascript
复制
y = np.array([1, 5, 6, 8, 1, 7, 3, 6, 9])
print(np.where(y>5))

得到结果:

代码语言:javascript
复制
(array([2, 3, 5, 7, 8], dtype=int64),)

此时,np.where函数返回数值大于5的索引位置。 例2:数列中大于5取‘m_5'否则取'lq_5'

代码语言:javascript
复制
y = np.array(range(1, 10))
print(y)
print(np.where(y>5, 'm_5', 'lq_5'))

得到结果:

代码语言:javascript
复制
[1 2 3 4 5 6 7 8 9]
['lq_5' 'lq_5' 'lq_5' 'lq_5' 'lq_5' 'm_5' 'm_5' 'm_5' 'm_5']

y是一个初始值为1,终值为9,步长为1的等差数列。 此时,np.where函数满足y>5输出'm_5',不满足输出'lq_5'。 例3:数列中小于5取一个值否则取另一个值

代码语言:javascript
复制
print(np.arange(10))
print(np.where(np.arange(10)<5, '吃苹果', '吃榴莲'))

得到结果:

代码语言:javascript
复制
[0 1 2 3 4 5 6 7 8 9]
['吃苹果' '吃苹果' '吃苹果' '吃苹果' '吃苹果' '吃榴莲' '吃榴莲' '吃榴莲' '吃榴莲' '吃榴莲']

此时,np.where函数满足np.arange(10)中数值小于5输出'吃苹果',不满足输出'吃榴莲'。 例4:数列中是2的倍数取一个值,否则取另一个值

代码语言:javascript
复制
y = np.array(range(1, 10))
print(y)
print(np.where(np.mod(y, 2)==0, '2b', 'n_2b'))

得到结果:

代码语言:javascript
复制
[1 2 3 4 5 6 7 8 9]
['n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b' '2b' 'n_2b']

此时,np.where函数满足y中数值除以2余数为0输出'2b',不满足输出'n_2b'。 例5:找出数据框中非0数据‍

代码语言:javascript
复制
x = np.array([[0, 1, 2], [3, 0, 0], [6, 0, 8]])
print(x[np.where(x)])

得到结果:

代码语言:javascript
复制
[1 2 3 6 8]

此时,np.where函数取出x中所有非0数,生成一个新的数列。至此,Python中常用函数集合2已讲解完毕,恭喜你对Python有了更多的了解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档