本文主要是介绍【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]])
这篇关于【numpy】ndarray交换两行(两列)、重新排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!