任务描述

本关任务:根据本关所学知识,过滤大写字母。

相关知识

为了完成本关任务,你需要掌握:

  • 花式索引;
  • 布尔索引。

花式索引

花式索引(Fancy Indexing)是NumPy用来描述使用整型数组**(这里的数组,可以是NumPy的数组,也可以是python自带的list)**作为索引的术语,其意义是根据索引数组的值作为目标数组的某个轴的下标来取值。

使用一维整型数组作为索引,如果被索引数组(ndarray)是一维数组,那么索引的结果就是对应位置的元素;如果被索引数组(ndarray)是二维数组,那么就是对应下标的行。如下图所示:

示例代码如下:

import numpy as np
arr = np.array(['zero','one','two','three','four'])
'''
打印arr中索引为1和4的元素
结果为:['one', 'four']
'''
print(arr[[1,4]])
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
'''
打印arr中索引为1和0的行
结果为:[[4, 5, 6],  [1, 2, 3]]
'''
print(arr[[1, 0]])
'''
打印arr中第2行第1列与第3行第2列的元素
结果为:[4, 8]
'''
print(arr[[1, 2], [0, 1]])

布尔索引
我们可以通过一个布尔数组来索引目标数组,以此找出与布尔数组中值为True的对应的目标数组中的数据,从而达到筛选出想要的数据的功能。如下图所示:(PS:需要注意的是,布尔数组的长度必须与被索引数组对应的轴的长度一致)

不过单纯的传入布尔数组进去有点蠢,有没有更加优雅的方式使用布尔索引来达到筛选数据的效果呢?

当然有!我们可以想办法根据我们的需求,构造出布尔数组,然后再通过布尔索引来实现筛选数据的功能。

假设有公司员工绩效指数的数据如下(用一个一维的ndarray表示),现在想要把绩效指数大于3.5的筛选出来进行股权激励。

那首先就要构造出布尔数组,构造布尔数组很简单,performance > 3.5即可。此时会生成想要的布尔数组。

有了布尔数组就可以使用布尔索引来实现筛选数据的功能了。

示例代码如下:

import numpy as np
performance = np.array([3.25, 3.5, 3.75, 3.5, 3.25, 3.75])
'''
筛选出绩效高于3.5的数据
结果为:[3.75, 3.75]
'''
print(performance[performance > 3.5])
'''
筛选出绩效高于3.25并且低于4的数据
注意:&表示并且的意思,可以看成是and。&左右两边必须加上()
结果为:[3.5  3.75 3.5  3.75]
'''
print(performance[(performance > 3.25) & (performance < 4)])

编程要求
请在右侧编辑器Begin-End处补充代码,根据函数参数input_data过滤出所有的大写字母。

  • 具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试输入:
[“d”,“a”,“A”,“p”,“b”,“I”,“C”,“K”]
预期输出:
[‘A’ ‘I’ ‘C’ ‘K’]*

import numpy as npdef student(input_data):result=[]#********* Begin *********#a = np.array(input_data)#将输入数据array化result = a[(a>="A")&(a<="Z")]#使用布尔逻辑和布尔索引# ********* End *********#return result

第3关:花式索引与布尔索引相关推荐

  1. python获取数组中大于某一阈值的那些索引值_Python NumPy 高级索引——整数组索引、布尔索引及花式索引...

    NumPy 除了之前文章中介绍的用整数和切片的索引外,数组还可以由整数数组索引.布尔索引及花式索引. 整数数组索引 整数索引有助于基于 N 维索引来获取数组中任意元素.每个整数数组表示该维度的下标值. ...

  2. A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)

    NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...

  3. python中索引和下标_Series下标索引、标签索引、切片索引、布尔索引

    Series的values属性可以获取值,Series的索引也可以获取值且更加灵活.Series是dict-like类型,也是list-like类型,可以模仿字典和列表获取数据,比如可以用get方法获 ...

  4. B07_NumPy 高级索引(整数数组索引,布尔索引,花式索引)

    NumPy高级索引 NumPy 比一般的 Python 序列提供更多的索引方式.除了之前看到的用整数和切片的索引外,数组可以由整数数组索引.布尔索引及花式索引. 整数数组索引 以下实例获取数组中(0, ...

  5. Python中布尔索引的使用

    import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline 展示表格基本信息 # ...

  6. pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例

    目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...

  7. pandas布尔索引

    说明:记录阅读代码过程中的布尔索引 布尔索引 data = [['Tom', 86], ['Bob', 80], ['Lily', 90], ['Mike', 97]] df = pd.DataFra ...

  8. 03_pandas布尔索引、isin()筛选、设置值at和iat,loc,reindex、dropna、fillna,isna、求平均值mean、Apply函数、value_counts

    布尔索引 案例1 import numpy as np import pandas as pd# 通过设置开始时间,并设置间隔了多少月 dates = pd.date_range('20130101' ...

  9. pandas 学习 —— 逻辑表达式与布尔索引

    >> df = pd.DataFrame(np.random.randint(0, 10, (5, 4)), columns=list('ABCD'))A B C D 0 0 4 8 4 ...

最新文章

  1. linux 替换内核 img,查看更改linux内核initrd.img-Go语言中文社区
  2. 【MM模块】 Classification 分类系统
  3. Angular里的RouterOutlet指令学习笔记
  4. 湖南工业职业技术学院计算机协会,计算机网络协会
  5. 使用React Native和Spring Boot构建一个移动应用
  6. mysql 判断是数据类型_mysql数据类型判断
  7. VS C# 删除数组中的一个或多个元素
  8. Python 算法交易实验30 退而结网7-交易策略思考
  9. VAR模型分析联合内生变量的动态关系
  10. UWB定位/RSSI定位 三边测量法trilateration C语言代码详解
  11. Google高级搜索命令
  12. Alink(1):Alink概述
  13. 神经网络中的filter (滤波器)与kernel(内核)的概念
  14. 完美世界(完美世界(北京)网络技术有限公司)
  15. H5首屏图片加载优化
  16. i7 8700+b360m+rx590黑苹果配置如何
  17. C: Warning: implicit declaration of function ‘e‘; did you mean ‘el‘?[-Wimplicit-function-declaration
  18. 林书豪028-三人的回应
  19. MARKdown语法与文字高亮
  20. 基于Python进行人脸验证人脸识别综合开发

热门文章

  1. LIUNX+NAT网吧网段限速透明代理脚本
  2. mPEG-Phosphate,甲氧基-聚乙二醇-磷酸盐试剂供应
  3. java 连珠五子棋.现代职业_用Java写的简单五子棋游戏(原创五子连珠算法)
  4. 什么是餐饮油烟在线监测系统?安科瑞 须静燕
  5. 如何生成固定格式的流水号条码
  6. matlab tolfun,matlab linprog解决办法
  7. 喜欢看动漫学计算机的女孩,菜鸟学电脑--女孩乐队动画的制作方法
  8. UCI-ICS32Python第一周笔记
  9. 最新远光软件笔试题面试题内容(2)
  10. 远光软件:区块链+公益,让慈善更透明