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

如何对3D数组按第三轴切片删除后半段数据得到指定形状?

Numpy三维数组按维度截断方案

你遇到的语法报错是因为Python原生不支持在列表[]内直接使用a:b格式的切片语法,同时你选择的索引范围也存在逻辑偏差:Python序列为左闭右开规则,要删除3600号及之后的元素,起始值应为3600而非3601。


方案1:直接数组切片(推荐)

不需要调用np.delete,直接通过numpy切片语法截取需要的部分即可,该方法返回数组视图,无额外内存拷贝,性能最优:

new_arr = arr[:, :, :3600]
  • 前两个冒号表示前两个维度(对应9、100的维度)保留所有元素
  • 最后一个维度:3600表示取索引0到3599的共3600个元素,输出形状恰好为(9, 100, 3600)

方案2:使用np.delete的正确写法

如果确实需要通过删除操作实现,有两种正确传参方式:

  1. 传入切片对象(无额外内存开销)
new_arr = np.delete(arr, slice(3600, 7200), axis=2)
  1. 传入索引范围序列(不推荐大长度范围使用,会生成额外索引列表占用内存)
new_arr = np.delete(arr, range(3600, 7200), axis=2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:06:02