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

如何无循环实现Numpy全数组与子数组的存在性判断?

无循环实现Numpy数组元素匹配布尔数组生成

可以直接用Numpy内置的矢量化函数实现,完全不需要循环,推荐两种方法:

  • 使用np.isin()(通用型,支持多维数组)
  • 使用np.in1d()(一维专用版本)

代码示例

import numpy as np

FullArray = np.array([0,1,2,3,4,5,6,7,8,9])
SubArray = np.array([8, 3, 5])

# 方法1:推荐的通用实现
BoolArray = np.isin(FullArray, SubArray)

# 方法2:一维数组专用实现
# BoolArray = np.in1d(FullArray, SubArray)

print(BoolArray)
# 输出结果:[False False False  True False  True False False  True False]

这两个函数都是底层基于矢量化运算实现,比手动循环效率高得多,尤其是处理大规模数组时优势显著。np.isin()的适用场景更广泛,能处理多维数组的元素匹配需求;np.in1d()则是专门针对一维数组做了优化,两者在一维场景下的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:55:17