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

从Matlab转Python,如何实现Numpy数组多值相等条件的索引筛选

你需要使用numpy内置的np.isin()方法实现多值匹配筛选,这是比循环效率高得多的矢量运算实现,完全可以替代你期望的类Matlab多值相等筛选写法。你之前的写法不生效是因为==后接切片1:3属于Matlab语法,Python原生语法和numpy都不支持这种用法。

具体实现示例

  1. 匹配ID为1、2、3的元素(对应你写的1:3的Matlab语法效果)
import numpy as np
# 第二个参数传入你要匹配的所有值的列表即可
new_x = old_x[np.isin(someID, [1,2,3])]

如果匹配的是连续整数,也可以用np.arange生成列表,避免手动输入:

# np.arange的右边界是开区间,所以要取1到3需要写np.arange(1,4)
new_x = old_x[np.isin(someID, np.arange(1,4))]
  1. 匹配ID为1、2、3、7的元素(对应你期望的1:3,7效果)
    直接把所有待匹配的值放进列表即可:
new_x = old_x[np.isin(someID, [1,2,3,7])]

补充用法

如果需要筛选ID不在指定列表中的元素,给np.isin()返回的布尔数组前加取反符~即可:

# 筛选ID不等于1、2、3、7的元素
new_x = old_x[~np.isin(someID, [1,2,3,7])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:39:02