删除矩阵行python_从numpy矩阵中移除行

只需在一个调用中执行delete:In [266]: B

Out[266]:

array([[ 2, 4, 6],

[ 8, 10, 12],

[14, 16, 18],

[20, 22, 24]])

In [267]: B1=np.delete(B,[1,3],axis=0)

In [268]: B1

Out[268]:

array([[ 2, 4, 6],

[14, 16, 18]])

你的问题有点混乱。我假设您希望按索引号删除行,而不是按某种内容删除行(不像列表find)。

但是,如果必须迭代(如使用列表),请按相反的顺序执行-这样索引就不会弄乱。您可能必须首先对索引进行排序(np.delete不需要这样做)。In [269]: B1=B.copy()

In [270]: for i in [1,3][::-1]:

...: B1=np.delete(B1,i,axis=0)

必须迭代的列表示例:In [276]: B1=list(range(10))

In [277]: for i in [1,3,5,7][::-1]:

...: del B1[i]

In [278]: B1

Out[278]: [0, 2, 4, 6, 8, 9]

=====

有了这样的列表输入,np.delete就相当于:In [285]: mask=np.ones((4,),bool)

In [286]: mask[[1,3]]=False

In [287]: mask

Out[287]: array([ True, False, True, False], dtype=bool)

In [288]: B[mask,:]

Out[288]:

array([[ 2, 4, 6],

[14, 16, 18]])

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值