按列排序,行变换

1.
import numpy as np
Z=np.random.randint(0,10,(5,5)) print("排序前:\n",Z) print("Z[:,2]:\n",Z[:,2],type(Z[:,2])) print("Z[:,2].argsort:\n",Z[:,2].argsort()) print("Z[:,2].argsort:\n",Z[Z[:,2].argsort()]) print(Z[np.array([3,4,1,2,0])]) print(Z[[3,4,1,2,0]])
排序前:
 [[7 3 1 5 3]
 [1 0 8 8 6]
 [8 7 1 3 6]
 [7 3 2 9 7]
 [5 3 5 5 0]]
Z[:,2]: [1 8 1 2 5] <class 'numpy.ndarray'>
Z[:,2].argsort: [0 2 3 4 1]
Z[:,2].argsort: [[7 3 1 5 3] [8 7 1 3 6] [7 3 2 9 7] [5 3 5 5 0] [1 0 8 8 6]]
----------------------->Z[列表或np数组]都是行变化
[[7 3 2 9 7]
 [5 3 5 5 0]
 [1 0 8 8 6]
 [8 7 1 3 6]
 [7 3 1 5 3]]
[[7 3 2 9 7]
 [5 3 5 5 0]
 [1 0 8 8 6]
 [8 7 1 3 6]
 [7 3 1 5 3]]


2.交换两行
A=np.arange(25).reshape(5,5)
print(A)
A[[0,1]]=A[[1,0]]
print(A)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]
[[ 5  6  7  8  9]
 [ 0  1  2  3  4]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]
posted @ 2019-01-03 09:42  wqbin  阅读(311)  评论(0)    收藏  举报