使用布尔索引可以避免使用for循环来操作数组,效率还是蛮高的,大家有必要了解下。
一般二维数组在实际工作中使用较多,所以本文直接以二维数组为例。
注:所涉及numpy基础背景知识我们在这里不再赘述,请自行百度。

首先构建一个4行6列数组arr_1,示例如下图:

我们的目标是根据第5列的元素的值,遮盖元素为1的行(第2行和第4行),从而从中取得元素为0的行(第1行和第3行)。
先将第5列切片,使用逻辑运算制成布尔索引,再用布尔索引遮盖arr_1,得到我们想要的结果arr_2数组。
下面是代码示例:

bool_0=arr_1[:,4]#切片取出第5列,冒号代表取整列
bool_1=[bool_0!=1]#通过比较运算得到布尔索引(其类型为list)
arr_2=arr_1[tuple(bool_1)]#将list转化为tuple进行布尔索引

其中bool_1的值为[true,false,true,false]
另外一点需要说明的是,布尔索引应从list类型转换为tuple,否则有警告:FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use arr[tuple(seq)] instead of arr[seq]. In the future this will be interpreted as an array index, arr[np.array(seq)], which will result either in an error or a different result.
该警告虽然不影响最终结果,但未来可能会导致问题,所以最好还是转换一下。
最后我们得到的数组arr_2为:

【发表是最好的记忆】

【代码示例】使用numpy布尔索引过滤二维数组中的行相关推荐

  1. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  2. Python练习——二维数组中每行最大值和每行和

    Python练习--二维数组中每行最大值和每行和 求一个3*3二维数组中每行的最大值和每行的和. 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔 输出格式: 输出3行3列的二维数组 ...

  3. 找出二维数组中每行的最小数但最小数的列不能相同

    现有一个M*N的表格,请统计表格中每行最小数值之和.要求最小数的都在不同列中, 既假设第一行第一列数是最小数,那即使第二行第一列的数在第二行中不去计算. example: 存在如下表格: 1 2 3 ...

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

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

  5. php 二维数组中去重,PHP实现二维数组去重功能示例

    PHP实现二维数组去重功能示例 发布于 2017-08-07 21:05:17 | 68 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Prep ...

  6. python二维数组排序_Python实现二维数组按照某行或列排序的方法【numpy lexsort】...

    本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对 ...

  7. 【python】二维数组按照某行或某列排序(numpy lexsort)

    这里介绍的排序方法主要是针对最后一行和最后一列,如果要指定某一行目前没有很好的方法,有个笨办法可以先把排序的该列(或行)换到最后,排序后再换回来 曾经以为排序只能使用list的sort函数,后来发现a ...

  8. Python找出二维数组中某个元素索引,自定义函数

    #函数:找出二维数组中某个元素的索引 #功能:返回目标元素在原数组中出现位置的所有索引号 def found(List,AimList):#List:搜索数组,AimList:目标元素print('原 ...

  9. javascript读取文本文件到二维数组代码_十行代码说清楚:leetcode 二维数组中的查找...

    剑指 Offer 04. 二维数组中的查找 这道题是将一维的二分查找扩展为二维数组中的二分查找. 关键点有 3 处: 起始点的选择 大于 target 时坐标的变化 小于 target 时坐标的变化 ...

最新文章

  1. HTML/CSS学习笔记02【表单标签】
  2. [你必须知道的.NET]第二十四回:认识元数据和IL(上)
  3. 限制ul显示高度_led显示屏钢结构吊装方案原则及适用条件
  4. AngularJS表单操作几个例子(表单提交,表单编辑默认值)
  5. 对WORD文档的关键字搜索
  6. python的题库_python题库-Python,题库
  7. 银行行号和银行代码是一样的吗?区别是什么?
  8. Python 爬虫学习笔记(七(2))JsonPath解析+实战
  9. 再见python你好go语言_再见,Python!你好,Go语言
  10. ps4移植android游戏,把PS4游戏《Apex英雄》《只狼》搬到安卓手机上玩,这招够简单!...
  11. Vue ElementUI table给表格一个斜线分隔线
  12. 动态规划法——常见题型及算法思路
  13. word论文排版和写作01:样式、自动列表、图片、表格、公式、脚注、目录、页眉页脚及各种交叉引用
  14. 《魔兽》遭黑客入侵 主城横尸遍野
  15. Android本地视频播放器开发--搜索本地视频(1)
  16. 微软ATC的笔试面试经历
  17. Linux安装软件无图形化界面,无图形界面安装 Development Tools(centos版)
  18. 从汉字到区位码的转换
  19. 【面经】触宝算法工程师一面
  20. linux光盘位置,红旗LINUX的安装文件在光盘的什么位置?

热门文章

  1. OCR文本识别系统项目文档——欢迎探讨交流
  2. 2023最新广西大学计算机电子信息考研复试之计算机网络和软件工程 828数据结构与程序设计上岸冲刺复试宝典(复试版/复试资料)
  3. 电力设备状态检修信息管理系统--开篇 电力设备检修分类【文摘】
  4. Android SurfaceView实战 带你玩切水果1.0
  5. 适合空间受限能量收集应用的高度集成电源 IC
  6. (J3455/J3155/J4015/J4105/……)无线网卡M.2(ngff) keyA/E接口扩展sata硬盘接口,黑群辉NAS系统
  7. Cheat Enginee(CE)对扫雷中部分属性的内存地址寻找以及修改~逆向分析
  8. 导出 excel 表格(纯前端)和下载excel 文件
  9. 《论文阅读》Multi-Task Learning of Generation and Classification for Emotion-Aware Dialogue Response Gener
  10. 动态使用element-plus 的图标