Numpy入门[16]——choose函数实现条件筛选

参考:

  • https://ailearning.apachecn.org/
  • numpy高级函数操作之——select、choose

使用Jupyter进行练习

借助numpy.choose()方法,我们可以通过将包含要选择的行号索引的参数作为数组传递,从多维数组中选择元素。

对于数组,有时候需要进行类似 switchcase 进行条件选择,此时使用 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函数实现条件筛选相关推荐

  1. Excel VBA 多条件筛选及汇总统计

    Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...

  2. Numpy入门教程:04. 数学函数

    背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...

  3. python input函数赋值法_DataFrame添加列(赋值法、apply()、assign()、条件筛选)

    在DataFrame添加一列常用4种方法,分别是1.直接赋值法; 2.apply函数;3.assign函数; 4.条件筛选,此外,concat函数也可以灵活的添加列,insert函数可以插入列,后续专 ...

  4. Numpy入门教程:05. 逻辑函数

    背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...

  5. R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations)、并指定需要保留的dataframe数据列或者字段

    R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations).并指定需要保留的dataframe数据列或者字段 目录

  6. Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选

    Py之pandas:利用isin函数对dataframe格式数据按照多个字段的条件筛选 目录 利用isin函数对dataframe格式数据按照多个字段的条件筛选 代码设计 输出结果

  7. filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选

    FILTER函数是筛选函数,就是在源数据中按照我们的条件筛选出我们想要的数据.除了常规的数据筛选,还可以进行多条件的"且"或者"或"的筛选. 下面我们来看看这个 ...

  8. python 数列筛选_对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...

  9. python numpy 多条件筛选

    numpy 条件筛选 np.where – array中满足条件的索引 import numpy as npa = np.arange(10) print(np.where(a>5)) prin ...

最新文章

  1. Uva(10048),最短路Floyd
  2. 自己服务器上部署APP应用(安卓和IOS版),下载页面的代码,以及IOS的xxx.plist文件的建立
  3. java网页制作教程_JavaWeb程序设计任务教程
  4. Excel制作带勾的方框
  5. 科大星云诗社动态20210301
  6. 模拟赛-20190228-随机数(random)
  7. 我用 MySQL 干掉了一摞简历
  8. STM32那点事(3)_中断(上)
  9. python中返回值为ture表达式_python return逻辑判断表达式(21)|python教程|python入门|python教程...
  10. 应用程序架构指导袖珍版
  11. 无心剑中译海涅《新春》
  12. 高效向前“零延迟” 数据中心IT自动化势在必行
  13. 在matlab下实现TDOA定位算法性能仿真
  14. 2021-06-14 七大参数,四种拒绝策略
  15. Cmder下载安装以及应用到Pycharm控制台
  16. 利用nssm将jar包安装为windows服务
  17. ultravnc,4款不能错过的ultravnc汉化版
  18. 使用cert-manager给阿里云的DNS域名授权SSL证书
  19. Buct oj 1016
  20. php在线考试系统 附源码(一)

热门文章

  1. KubeSphere容器云平台在k8s集群搭建
  2. dllhost.exe进程
  3. S2-045 Struts 2漏洞(CVE-2017-5638) 实战
  4. 如何设置JIRA在创建问题时将当前经办人指定为报告人
  5. win7explorerexe损坏黑屏_Win7系统提示“explorer.exe损坏的图像”怎么解决?
  6. Spring Boot + flowable 完美结合,快速实现工作流
  7. ArcGIS Pro使用路径分析图层计算OD成本矩阵
  8. NTP时间服务器(带MD5身份验证)
  9. CS231n课程笔记翻译:神经网络笔记3(下)
  10. Sublime Text编辑器