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

如何用Numpy布尔掩码从子数组生成带占位值的目标数组?

最简实现:从掩码子数组还原带0填充的原长度数组

直接初始化一个与掩码b同长度的全0数组,再将子数组c赋值到掩码为True的位置即可,这是numpy里最简洁高效的实现方式:

import numpy as np

c = np.array([1, 4, 7])
b = np.array([True, False, True, True, False])

d = np.zeros_like(b, dtype=c.dtype)
d[b] = c

运行后d的结果为array([1, 0, 4, 7, 0]),完全匹配需求。

补充说明

  • zeros_like(b)创建与b形状一致的全0数组,dtype=c.dtype保证数组类型和c匹配,避免不必要的类型转换;
  • 借助numpy布尔索引直接赋值是原生高效操作,比循环实现性能高出很多,尤其适合处理大规模数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:18:57