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

使用NumPy split函数提取子网格时为何用[1,4]而非[1,3]

关于NumPy split()函数参数[1,4]的解释

首先得明确:NumPy的np.split()函数的第二个参数是分割位置的索引列表,这些索引用来指定在数组的哪个位置切开,分割后的子数组是「从上次分割结束的位置,到当前索引位置」的区间(左闭右开,也就是包含起始索引,不包含结束索引)。

结合你的例子一步步拆解:

第一步:按行分割,提取中间3行

原数组x是5行,行的索引依次是0、1、2、3、4。
当执行x1, x2, x3 = np.split(x, [1, 4])时:

  • x1:从数组开头到索引1(不包含1),对应第0行
  • x2:从索引1到索引4(不包含4),对应第1、2、3行——这正好是我们需要的、全是9的中间三行
  • x3:从索引4到数组末尾,对应第4行

如果换成你疑问的[1,3],分割后:

  • x2会是从索引1到3(不包含3),只对应第1、2行,仅有两行,没法组成3×3的子网格,完全不符合需求。

第二步:按列分割,提取中间3列

拿到x2(3行5列)后,执行y1, y2, y3 = np.split(x2, [1, 4], axis=1)(axis=1表示按列分割):
列的索引同样是0、1、2、3、4:

  • y1:从开头到索引1(不包含1),对应第0列
  • y2:从索引1到4(不包含4),对应第1、2、3列——这就是中间全是9的三列
  • y3:从索引4到末尾,对应第4列

这样y2就正好是我们要的3×3子网格。

总结一下:用[1,4]是为了精准框出索引1到3的元素(不管行还是列),刚好凑够3个元素,组成3×3的目标子网格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:05:33