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

NumPy中如何对ndarray选取多段不连续的维度范围切片

NumPy张量多段不连续维度切片选取方案

原生切片语法不支持在同一维度直接传入多段不连续范围,你可以先将目标维度的所有待选索引拼接为一维数组,再用该数组做高级索引即可实现需求。

实现代码

推荐使用np.r_快速拼接多段切片为索引数组,写法简洁:

import numpy as np

# 拼接第三维度的所有目标索引段
selected_indices = np.r_[38:44, 46:48, 50:54]
# 执行索引取值
output = x[i, :, selected_indices]

上述代码中selected_indices实际展开后的索引序列为[38, 39, 40, 41, 42, 43, 46, 47, 50, 51, 52, 53],和你需要选取的范围完全匹配。

补充说明

  • 如果你不想使用np.r_,也可以用np.concatenate配合np.arange实现等价的索引构造:
    selected_indices = np.concatenate([
        np.arange(38, 44),
        np.arange(46, 48),
        np.arange(50, 54)
    ])
    
  • 注意该方式返回的是原张量的副本,和单切片返回视图的特性不同,修改返回的output不会改变原张量x的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:57:12