Numpy入门[16]——choose函数实现条件筛选
Numpy入门[16]——choose函数实现条件筛选
参考:
- https://ailearning.apachecn.org/
- numpy高级函数操作之——select、choose
使用Jupyter进行练习
借助numpy.choose()
方法,我们可以通过将包含要选择的行号索引的参数作为数组传递,从多维数组中选择元素。
对于数组,有时候需要进行类似 switch
和 case
进行条件选择,此时使用 choose 函数十分方便:
def choose(a, choices, out=None, mode='raise')
参数 a :它必须是一个 int 型的 数组,并且 a 中的元素,必须是0~n-1之间的数,这里的n表示的就是数组choices数组最外层的维度数。
choices:表示的是要操作的数组,要注意的是choices的数组的维度是一定要和a进行匹配的,如果匹配不了,会出现错误。
参数out:接收运算结果的数组,它的维度一定要和 a 是一样的,是可选参数。
参数mode:
默认的是raise,表示的是a数组中的元素不能超过 n
clip:将 a 中的 元素 如果小于0,则将其变为0,如果大于n-1,则变为n-1
wrap:将a中的值 value变为value mod n,即值除以n的余数。
import numpy as np
a = np.array([[2,0,1],[2,1,0],[1,2,2]])
choice = np.array([])np.choose(a, [[0, 1, 2], [10, 11, 12],[20, 21, 22]])
array([[20, 1, 12],[20, 11, 2],[10, 21, 22]])
在上面的例子中,a中第一行第一列元素映射为choice中第三行(2)第一列元素,第一行第二列元素映射为choice中第一行(0)第二列元素,映射的是行下标。
事实上, choose 不仅仅能接受下标参数,还可以接受下标所在的位置:
i0 = np.array([[0,1,2],[3,4,5],[6,7,8]])
i2 = np.array([[20,21,22],[23,24,25],[26,27,28]])
a = np.array([[1,0,1],[2,1,0],[1,2,2]])np.choose(a, [i0, 10, i2])
array([[10, 1, 10],[23, 10, 5],[10, 27, 28]])
这里,control 传入第一个 1 对应的是 10,传入的第一个 0 对应于 i0 相应位置的值即 1,剩下的以此类推。
下面的例子将数组中所有小于 10 的值变成了 10。
a = np.array([[ 0, 1, 2], [10,11,12], [20,21,22]])a < 10
array([[ True, True, True],[False, False, False],[False, False, False]])
# False(0)对应的是a中相应的元素,True(1)对应的是10
np.choose(a < 10, (a, 10))
array([[10, 10, 10],[10, 11, 12],[20, 21, 22]])
下面的例子将数组中所有小于 10 的值变成了 10,大于 15 的值变成了 15。
a = np.array([[ 0, 1, 2], [10,11,12], [20,21,22]])lt = a < 10
gt = a > 15choice = lt + 2 * gt
choice
array([[1, 1, 1],[0, 0, 0],[2, 2, 2]])
np.choose(choice, (a, 10, 15))
array([[10, 10, 10],[10, 11, 12],[15, 15, 15]])
Numpy入门[16]——choose函数实现条件筛选相关推荐
- Excel VBA 多条件筛选及汇总统计
Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...
- Numpy入门教程:04. 数学函数
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- python input函数赋值法_DataFrame添加列(赋值法、apply()、assign()、条件筛选)
在DataFrame添加一列常用4种方法,分别是1.直接赋值法; 2.apply函数;3.assign函数; 4.条件筛选,此外,concat函数也可以灵活的添加列,insert函数可以插入列,后续专 ...
- Numpy入门教程:05. 逻辑函数
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations)、并指定需要保留的dataframe数据列或者字段
R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations).并指定需要保留的dataframe数据列或者字段 目录
- Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选
Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选 目录 利用isin函数对dataframe格式数据按照多个字段的条件筛选 代码设计 输出结果
- filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选
FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...
- python 数列筛选_对numpy中的数组条件筛选功能详解
在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...
- python numpy 多条件筛选
numpy 条件筛选 np.where – array中满足条件的索引 import numpy as npa = np.arange(10) print(np.where(a>5)) prin ...
最新文章
- Uva(10048),最短路Floyd
- 自己服务器上部署APP应用(安卓和IOS版),下载页面的代码,以及IOS的xxx.plist文件的建立
- java网页制作教程_JavaWeb程序设计任务教程
- Excel制作带勾的方框
- 科大星云诗社动态20210301
- 模拟赛-20190228-随机数(random)
- 我用 MySQL 干掉了一摞简历
- STM32那点事(3)_中断(上)
- python中返回值为ture表达式_python return逻辑判断表达式(21)|python教程|python入门|python教程...
- 应用程序架构指导袖珍版
- 无心剑中译海涅《新春》
- 高效向前“零延迟” 数据中心IT自动化势在必行
- 在matlab下实现TDOA定位算法性能仿真
- 2021-06-14 七大参数,四种拒绝策略
- Cmder下载安装以及应用到Pycharm控制台
- 利用nssm将jar包安装为windows服务
- ultravnc,4款不能错过的ultravnc汉化版
- 使用cert-manager给阿里云的DNS域名授权SSL证书
- Buct oj 1016
- php在线考试系统 附源码(一)
热门文章
- KubeSphere容器云平台在k8s集群搭建
- dllhost.exe进程
- S2-045 Struts 2漏洞(CVE-2017-5638) 实战
- 如何设置JIRA在创建问题时将当前经办人指定为报告人
- win7explorerexe损坏黑屏_Win7系统提示“explorer.exe损坏的图像”怎么解决?
- Spring Boot + flowable 完美结合,快速实现工作流
- ArcGIS Pro使用路径分析图层计算OD成本矩阵
- NTP时间服务器(带MD5身份验证)
- CS231n课程笔记翻译:神经网络笔记3(下)
- Sublime Text编辑器