You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过掩码修改Python二维数组圆形区域内满足阈值条件的值

你可以在现有圆形区域mask的基础上,叠加数值判断的布尔条件,通过逐元素逻辑与组合两个筛选规则即可实现需求,参考代码如下:

import numpy as np

x = np.arange(0, 20)
y = np.arange(0, 20)
# 此处替换为你提前完成赋值的实际数组
arr = np.random.randint(0, 10, size=(y.size, x.size))

cx = 10.
cy = 10.
r = 4.

# 组合两个筛选条件:1. 位置在圆形区域内 2. 元素数值小于5
mask = ((x[np.newaxis, :] - cx) ** 2 + (y[:, np.newaxis] - cy) ** 2 < r ** 2) & (arr < 5)
# 仅对同时满足两个条件的元素赋值,可将1替换为你需要的目标值
arr[mask] = 1

补充说明

  • 用&运算符实现numpy数组的逐元素逻辑与,注意所有单个条件都需要用括号包裹,避免运算符优先级问题导致计算结果异常
  • 如需叠加更多判断规则,只需继续用&拼接对应布尔数组即可,例如筛选圆形区域内数值大于2且小于7的元素可以写为:
    mask = 圆形区域判断条件 & (arr > 2) & (arr < 7)
  • 整个实现为numpy向量化操作,无Python层级循环,处理大规模数组时效率更高

内容的提问来源于stack exchange,提问作者Minox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:45:03