Numpy--布尔索引

2023-11-12

#布尔索引:
布尔索引是通过相同数组上的True还是False来进行提取的。提取的条件可以有多个,那么如果有多个,可以使用&来代表且,用来代表或,如果有多个条件,那么每个条件要使用圆括号括起来。
布尔运算也是矢量的,比如以下代码:

a1 = np.arange(0,24).reshape((4,6))
print(a1<10) #会返回一个新的数组,这个数组中的值全部都是bool类型
> [[ True  True  True  True  True  True]
 [ True  True  True  True False False]
 [False False False False False False]
 [False False False False False False]]

这样看上去没有什么用,假如我现在要实现一个需求,要将a1数组中所有小于10的数据全部都提取出来。那么可以使用以下方式实现:

a1 = np.arange(0,24).reshape((4,6))
a2 = a1 < 10
print(a1[a2]) #这样就会在a1中把a2中为True的元素对应的位置的值提取出来

其中布尔运算可以有!=、==、>、<、>=、<=以及&(与)和|(或)。示例代码如下:

a1 = np.arange(0,24).reshape((4,6))
#必须带括号
a2 = a1[(a1 < 5) | (a1 > 10)]
print(a2)

值的替换:

利用索引,也可以做一些值的替换。把满足条件的位置的值替换成其他的值。比如以下代码:

a1 = np.arange(0,24).reshape((4,6))
a1[3] = 0 #将第三行的所有值都替换成0
print(a1)

也可以使用条件索引来实现:

a1 = np.arange(0,24).reshape((4,6))
a1[a1 < 5] = 0 #将小于5的所有值全部都替换成0
print(a1)

还可以使用函数来实现:

where函数

a1 = np.arange(0,24).reshape((4,6))
a2 = np.where(a1 < 10,1,0) #把a1中所有小于10的数全部变成1,其余的变成0
print(a2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy--布尔索引 的相关文章

随机推荐

  • MATLAB配置m_map工具箱绘制格网图的注意事项

    一般而言我们是使用gmt绘制各类地球物理的图件 但是需要入门 因此我们可以选择m map工具箱来达到相同的目的 m map官网 需要科学上网 M Map A Mapping package for Matlab ubc ca 下载好后可以进
  • AngularJS中使用ngModal模态框

    https blog csdn net u013360850 article details 54318156 AngularJS中使用ngModal模态框 在AngularJS中使用模态框需要引用的文件 angular js 1 5 5
  • 页面动态设置锚点方法

    1 页面动态设置锚点 可以根据页面的不同点击位置设置图片 使用案例 在底部有视频播放区域 点击某个视频进入视频播放并且页面刷新后自动跳转到描点位置
  • 硬件电路设计--运算放大器(三)应用二滤波

    文章目录 前言 一 有源滤波电路 二 低通滤波器 2 1 一阶低通无源滤波器 2 2 一阶低通有源滤波器 2 2 二阶低通有源滤波器 低通滤波器的高频馈通 三 高通滤波器 3 1 有源滤波器 3 2 三阶高通 四 带通滤波器 高Q值带通 心
  • 基于vue的图片查看插件v-viewer

    效果如图所示 github地址https github com mirari v viewer 使用方法很简单具体参考gitHub最靠谱
  • 模板方法模式:简化代码,提高复用性

    在软件开发中 我们经常会遇到一些算法或业务流程 其中的步骤或顺序是固定的 但某些步骤的具体实现方式可能会有所不同 这时 模板方法模式就能派上用场 模板方法模式是一种行为设计模式 它定义了一个算法的骨架 将某些步骤的具体实现延迟到子类中 通过
  • 时间序列的特征工程——一些总结

    一个说法在最前面 创造新的特征是一件十分困难的事情 需要丰富的专业知识和大量的时间 机器学习应用的本质基本上就是特征工程 Andrew Ng 大佬整理的一个时间序列预测方法总结 时间序列预测方法总结 知乎 特征工程的流程介绍 关于做特征工程
  • Bi-LSTM原理及TensorFlow实现序列标注

    本文整理了Bi LSTM的原理 并在静觅博客静觅 TensorFlow Bi LSTM实现序列标注 的基础上对TensorFlow 搭建一个Bi LSTM来处理序列标注问题的代码进行了详细的注释 Bi LSTM理解 RNN的意思是 为了预测
  • oracle-04 分页查询

    原文转载自 https www cnblogs com wuxu p 11198764 html oracle的分页查询 使用 rownum关键字 oracle对外提供的自动给查询结果编号的关键字 与每行的数据没有关系 注意 rownum关
  • pytest

    1 概述 pytest是一个非常成熟的全功能的Python测试框架 主要特点有以下几点 1 简单灵活 容易上手 文档丰富 2 支持参数化 可以细粒度地控制要测试的测试用例 3 能够支持简单的单元测试和复杂的功能测试 还可以用来做seleni
  • 2021.11.18总结

    数据结构递归 进一步了解了什么是递归 什么时候使用递归 递归模型 递归出口 递归体 了解了如何去设计递归算法
  • MySQL数据库中的架构之内存架构

    MySQL5 5 版本开始 默认使用InnoDB存储引擎 它擅长事务处理 具有崩溃恢复特性 在日常开发中使用非常广泛 内存结构中 主要分为这么四大块儿 Buffer Pool Change Buffer Adaptive Hash Inde
  • 饥荒 服务器没有响应,饥荒服务器卡怎么办 饥荒服务器卡顿解决方法

    随着TGP版饥荒的发售 想必不少玩家都把这款游戏见捡起来摸了 一些玩家在和其他玩家联机进行游戏的时候出现了卡顿的现象 那么饥荒服务器卡怎么办呢 下面小编就为大家带来饥荒服务器卡顿解决方法 一起来看看吧 随着TGP版饥荒的发售 想必不少玩家都
  • hadoop的datanode启动不了

    启动hadoop 2 6遇到的datanode启动不了 分类 hadoop 2014 12 22 12 25 2678人阅读 评论 2 收藏 举报 hadoop 查看日志如下 2014 12 22 12 08 27 264 INFO org
  • c++(练习题)————无重复字符的最长子串

    题目描述 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 bbbbb 输出 1 解释 因为无重复字符的最
  • 解决vue项目中出现的console报错问题

    解决vue项目中出现的console报错问题 问题描述 在vue项目中 使用console log输出是总是会报错 使用如下 控制台报错如下 页面报错如下 vue项目中使用的版本如下 package json文件 产生原因 ESLint代码
  • C#中 ??、 ?、 ?: 、?.、?[ ]

    1 可空类型修饰符 引用类型可以使用空引用表示一个不存在的值 而值类型通常不能表示为空 例如 string str null 是正确的 int i null 编译器就会报错 为了使值类型也可为空 就可以使用可空类型 即用可空类型修饰符 来表
  • 缓存系列文章--8.热点key问题(mutex key)

    转载请注明出处哈 http carlosfu iteye com blog 2269678 一 引出热点key问题 我们通常使用 缓存 过期时间的策略来帮助我们加速接口的访问速度 减少了后端负载 同时保证功能的更新 一般情况下这种模式已经基
  • 2020-04-21

    实验2 3 1 求1到100的和 10分 本题要求编写程序 计算表达式 1 2 3 100 的值 输入格式 本题无输入 输出格式 按照以下格式输出 sum 累加和 代码 int main int i 0 int sum 0 for i 0
  • Numpy--布尔索引

    布尔索引 布尔索引是通过相同数组上的True还是False来进行提取的 提取的条件可以有多个 那么如果有多个 可以使用 来代表且 用来代表或 如果有多个条件 那么每个条件要使用圆括号括起来 布尔运算也是矢量的 比如以下代码 a1 np ar