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

如何使用np.where实现numpy数组字符串in条件匹配替代列表推导

解决方案

你可以使用numpy原生的向量化字符串操作实现需求,全程无需转换为列表处理,依赖numpy的广播特性配合np.char.count即可判断子串存在性,性能远高于列表推导:

完整可运行代码

import numpy as np
currencies = np.array(["USD","NZL","EUR","KWR"])
target_str = "USDKLR EUR"
# 统计每个货币代码在目标字符串中的出现次数,次数大于0即代表存在
mask = np.char.count(target_str, currencies) > 0
# 用np.where筛选符合条件的元素
currencie = currencies[np.where(mask)]
print(currencie) # 输出结果:['USD' 'EUR']

核心逻辑说明

  • np.char.count是numpy提供的向量化字符串处理函数,传入的第一个参数是待检索的父字符串,支持自动广播到和第二个参数(子串数组)相同的长度
  • 仅需判断每个子串的出现次数是否大于0,即可得到对应元素是否在目标字符串中的布尔掩码
  • 全程仅调用numpy内置函数,当数组长度达到万级以上时,执行效率相比列表推导有数量级提升

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:30:00