如何在Python中删除ndarray矩阵中指定范围的行
Numpy矩阵删除指定范围行的方法
你可以直接使用numpy内置的np.delete()方法完成行删除操作,该方法不会修改原始矩阵,会返回删除指定内容后的新矩阵,具体操作如下:
首先注意numpy默认是0基索引(即矩阵第一行的索引为0),你可以根据自己的行计数习惯选择对应写法:
- 如果你说的「第5行到第50行」是日常1开始计数的行号(即打印出来的第一行算第1行),对应的索引范围是4到49,由于numpy切片是左闭右开规则,写法如下:
import numpy as np # 你的原始矩阵 A = np.linspace(0,100*100-1,100*100).reshape([100,100,]) # 删除第5~50行(1计数) A_new = np.delete(A, slice(4, 50), axis=0) # 验证结果形状:删除46行后剩余54行,输出应为 (54, 100) print(A_new.shape)
- 如果你说的「第5行到第50行」是numpy的0基索引(即第一行算第0行),直接调整切片范围即可:
A_new = np.delete(A, slice(5, 51), axis=0)
如果你需要直接修改原始矩阵,直接把返回结果赋值给原变量A即可:A = np.delete(A, slice(4,50), axis=0)
内容的提问来源于stack exchange,提问作者user1068636
相关产品推荐
相关产品推荐

