news 2026/7/9 7:55:35

np.where(arr<0,0,arr)数据替换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
np.where(arr<0,0,arr)数据替换

np.where(条件, 满足条件时填的值, 不满足条件时填的值)

demo:把数组中小于0的数都替换为0

import numpy as np arr = np.array([-2.5, 3.0, -0.5, 0, 5.5, -1.2, 4.0]) result = np.where(arr < 0, 0, arr) print("处理结果:", result)
处理结果: [0. 3. 0. 0. 5.5 0. 4. ]

注意:这俩方法与where差不多

np.clip(arr, 0, None)也是单边限制(下限为0),效果完全一样
np.clip(arr, -5, 5)双边限制:小于 -5 的变 -5,大于 5 的变 5,中间的保留。

where的其他用法:

1、找出数组满足条件的索引:
arr = np.array([10, 25, 30, 15, 28]) # 找出 arr 中大于 20 的数字都在哪个位置 indexes = np.where(arr > 20) print(indexes) # 输出:(array([1, 2, 4]),) -> 意思是下标 1、2、4 的位置满足条件 # 利用这个索引,可以把这些位置的数全部打印出来 print(arr[indexes]) # 输出:[25 30 28]

在实际数据清洗中的妙用:如果你想删除所有异常值(而不是替换),你就用单参数where找到好数据的下标,然后筛选出来。

# 假设温度数据,只想要大于0且小于100的正常数据,把异常的丢掉 raw = np.array([36.5, -5, 45.0, 200, 36.6]) normal_indexes = np.where((raw > 0) & (raw < 100)) clean_data = raw[normal_indexes] print(clean_data) # 输出:[36.5 45.0 36.6] (-5 和 200 被丢掉了)
2、复合逻辑(且 &,或 |,非 ~)
arr = np.array([-5, 0, 10, 25, 100]) # 条件:大于等于 0 并且 小于等于 50 result = np.where((arr >= 0) & (arr <= 50), arr, -999) # 不满足的设为 -999 print(result) # 输出:[-999 0 10 25 -999]

注意:在 NumPy 中,逻辑“与”必须用&,逻辑“或”用|,千万不能用 Python 的andor

3、嵌套多条件(实现if...elif...else

where支持嵌套,用来处理“不止两种情况”的分支。

比如:大于 0 的设为 1,等于 0 的设为 0,小于 0 的设为 -1。

arr = np.array([-2, 0, 3]) # 外层判断 >=0 吗?如果是,再进入内层判断是不是等于 0 result = np.where(arr >= 0, np.where(arr == 0, 0, 1), -1) print(result) # 输出:[-1 0 1]

如果条件超过 3 个分支,用np.select代码会更清晰

4、结合np.where修改原始数据
where 可以直接放在赋值语句的等号左边(借助单参数模式拿到的索引) arr = np.array([1, 2, 3, 4, 5]) # 找出所有大于3的位置,直接将这些位置上的值改为 100 arr[np.where(arr > 3)] = 100 print(arr) # 输出:[1 2 3 100 100]

三个参数造新值,两个参数找位置。

1、看到3 个参数(条件,A,B):它就是“盖浇饭”,满足条件的浇A,不满足的浇B,生成新饭。

2、看到1 个参数(只有条件):它就是“定位器”,只告诉你哪里有金矿(下标),挖不挖随你。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 7:52:57

3 种传感器退化场景解析:Ground-Fusion 如何应对视觉/轮速计/GNSS失效

3 种传感器退化场景解析&#xff1a;Ground-Fusion 如何应对视觉/轮速计/GNSS失效在自动驾驶和机器人定位领域&#xff0c;多传感器融合SLAM系统的鲁棒性设计一直是核心挑战。Ground-Fusion作为ICRA2024最新提出的低成本地面SLAM系统&#xff0c;通过创新的传感器退化处理机制&…

作者头像 李华
网站建设 2026/7/9 7:50:49

从访存的角度理解RTOS的实时性

从访存的角度理解RTOS的实时性RTOS&#xff08;Real Time Operation System&#xff09;的一大特性就是实时性强&#xff0c;那么什么是实时性呢&#xff1f;笼统的来说&#xff0c;不是任务处理的快就叫做实时&#xff0c;实时的核心是确定性&#xff0c;又叫可预测性&#xf…

作者头像 李华
网站建设 2026/7/9 7:50:43

点餐小程序平台哪个好?菜单、支付和后厨订单能力对比

点餐小程序平台哪个好&#xff1f;菜单、支付和后厨订单能力对比点餐小程序平台哪个好&#xff0c;不能只看菜单样式。餐饮门店真正需要的是&#xff1a;菜品能不能清楚展示&#xff0c;规格和加料能不能配置&#xff0c;顾客能不能顺畅支付&#xff0c;订单能不能及时提醒&…

作者头像 李华
网站建设 2026/7/9 7:47:50

Logistic 模型与回归辨析:从S型曲线到分类任务的5个关键差异

Logistic 模型与回归辨析&#xff1a;从S型曲线到分类任务的5个关键差异在数据分析领域&#xff0c;"Logistic"这个术语经常出现在两种截然不同的场景中&#xff1a;一种是描述增长曲线的微分方程模型&#xff0c;另一种则是解决分类问题的统计方法。这种同名异义的现…

作者头像 李华
网站建设 2026/7/9 7:45:54

Google OSV-Scanner:一个命令扫清项目依赖里的漏洞

文章目录Google OSV-Scanner&#xff1a;一个命令扫清项目依赖里的漏洞1、 为什么是 OSV2、 能用在哪3、 怎么用4、 不只是发现漏洞5、 适合谁用Google OSV-Scanner&#xff1a;一个命令扫清项目依赖里的漏洞 OSV-Scanner 是 Google 开源的漏洞扫描工具&#xff0c;在 GitHub …

作者头像 李华
网站建设 2026/7/9 7:45:20

计算机毕业设计之旅行社网站的设计与实现

伴随着社会以及科学技术的发展&#xff0c;互联网已经渗透在人们的身边&#xff0c;网络慢慢的变成了人们的生活必不可少的一部分&#xff0c;紧接着网络飞速的发展&#xff0c;系统管理这一名词已不陌生&#xff0c;越来越多的旅行社等机构都会定制一款属于自己个性化的管理系…

作者头像 李华