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

Numpy数组范围索引:如何便捷访问末尾元素?

在NumPy中用范围索引包含末尾元素的简洁写法

在NumPy里,切片遵循左闭右开的规则,这和MATLAB的end逻辑不同,你遇到的问题是很常见的使用差异。解决方法非常直接:

  • 要获取从索引3(对应第4列)到最后一列的所有元素,直接写array[:,3:]即可。当切片的结束位置留空时,NumPy会自动延伸到数组末尾,完全等价于MATLAB里的(:,4:end)。

为什么之前的写法不符合预期?

  • array[:,3:-1]取不到最后一列,是因为-1指向最后一列的索引,但切片的结束位置是不包含的,所以它会停在倒数第二列。
  • array[0:-1]同理,会取从第0行到倒数第二行的元素,自然覆盖不了整个数组。如果要取整个数组,直接写array[:]或者直接使用原数组即可。

补充几个实用的切片场景:

  • 取最后3列:array[:,-3:]
  • 取从第2行到最后一行:array[1:](注意NumPy索引从0开始)
  • 取所有行的前两列+最后一列:可以用np.hstack([array[:,:2], array[:,-1:]]),单纯范围索引需求的话,末尾留空就足够满足大部分场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:27:39