【numpy】ndarray交换两行(两列)、重新排列

numpy进行行(列)交换非常简便,因为numpy的下标访问是基于视图机制的,对子视图重新赋值即可。

a = np.arange(12).reshape(3, 4)
print(a)
a[[0, 2]] = a[[2, 0]]
a

运行结果:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
array([[ 8,  9, 10, 11],
       [ 4,  5,  6,  7],
       [ 0,  1,  2,  3]])

利用这个机制也可以对array重新排列,例如下面的代码就是将2*2的array按第一列值排序。

a = np.arange(12).reshape(3, 4)
print(a)
top = np.argsort(a[:, 0], axis=0).tolist()
top.reverse()
a = a[top]
a
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
array([[ 8,  9, 10, 11],
       [ 4,  5,  6,  7],
       [ 0,  1,  2,  3]])
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值