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

如何在NumPy字符串数组中不区分大小写查找子串的所有出现位置

在NumPy字符串数组中不区分大小写查找子串的所有位置

可以通过NumPy的向量化字符串方法结合大小写统一转换来实现需求,具体操作如下:

  1. 导入库并定义目标数组与子串:
import numpy as np

myArray = np.array(['Time', 'utc_sec', 'UTC_day', 'Utc_Hour'])
sub = 'utc'
  1. 生成不区分大小写的匹配掩码:
    将数组所有元素和子串统一转为小写,再检查每个元素是否包含目标子串,得到布尔类型的匹配结果:
mask = np.char.lower(myArray).str.contains(sub.lower())
  1. 提取匹配元素的索引:
    用np.where()筛选出掩码中True对应的位置索引,转为列表后就是最终结果:
result = np.where(mask)[0].tolist()
print(result)  # 输出: [1, 2, 3]

原理说明

  • np.char.lower() 是NumPy的向量化方法,能批量转换数组内字符串的大小写,无需手动循环遍历。
  • .str.contains() 是NumPy字符串数组的内置方法,结合大小写统一操作,实现不区分大小写的子串匹配。
  • np.where() 用于定位掩码中符合条件的位置,最终转为列表得到所需索引集合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:25:25