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

numpy.delete与slice使用疑问:如何一步生成指定维度无无效0的数组

解决numpy删除指定索引后所有列的问题

问题根源

你用slice(1344,-1)时,numpy切片遵循左闭右开规则:slice(a,b)包含索引a但不包含b。所以slice(1344,-1)只会删除从1344到倒数第二列的所有列,最后一列(索引-1)完全没被处理,这就是无效0残留的原因。

一行代码解决方案

方案1:直接切片(最简洁高效)

直接保留前1344列,完全避开要删除的部分:

data = data[:, :1344]

方案2:用np.delete修正切片范围

如果一定要用np.delete,用数组的列数代替-1,确保覆盖所有要删除的列:

data = np.delete(data, slice(1344, data.shape[1]), axis=1)

data.shape[1]是数组的总列数,slice(1344, data.shape[1])会包含从1344到最后一列的所有索引(左闭右开规则刚好覆盖目标范围)。

验证结果

执行后检查输出:

print(data.shape)  # 输出 (200000, 1344)
print(data[0,1340:1344])  # 输出 [435 432 426 438],无无效0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:25:35