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

如何在Numpy中对第一列匹配目标列表的行,将其第二列元素加1?

你之前的写法无法得到预期结果的核心原因是:np.add 搭配 where 参数时不会修改原数组,只会返回单次匹配对应的新数组,且map遍历过程中不会累积每次的修改结果,自然达不到批量更新的效果。

可以用np.isin生成匹配掩码实现需求,全程向量化操作无需循环,效率很高:

import numpy as np

# 原始数组和输入列表
my_list = np.array( [[1,100],
                     [2,120],
                     [3,150],
                     [4,190],
                     [5,98],])
input_list = [1,4,5]

# 生成布尔掩码:第一列元素在输入列表里的行标记为True
match_mask = np.isin(my_list[:, 0], input_list)
# 选中匹配行的第二列统一加1
# 如果不想修改原数组,先执行 my_output = my_list.copy() 再修改my_output即可
my_list[match_mask, 1] += 1

执行后my_list就是你需要的输出:

array([[  1, 101],
       [  2, 120],
       [  3, 150],
       [  4, 191],
       [  5,  99]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:39:02