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

如何将NumPy数组中布尔数组True对应位置元素设为0?

用NumPy布尔索引修改指定位置元素(保留原数组结构)

给定以下NumPy数组:

import numpy as np
a = np.array([1,2,3,4,5])
b = np.array([False, False, True, True, True])

要实现将a中对应b为True的元素设为0,其余元素保留原值的需求,直接用布尔索引赋值即可,不会改变数组长度,正好符合要求:

方法一:原地修改原数组

a[b] = 0
print(a)  # 输出:[1 2 0 0 0]

这种操作是直接定位到b中True对应的位置,把这些位置的元素替换成0,和c = a[b]那种提取子集的操作完全不同,不会删除任何元素。

方法二:生成新数组(不修改原数组)

如果不想改动原数组a,可以先复制一份再修改:

c = a.copy()
c[b] = 0
print(c)  # 输出:[1 2 0 0 0]
print(a)  # 原数组保持不变:[1 2 3 4 5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:10:32