按列排序,行变换
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]]
大多数人都以为是才智成就了科学家,他们错了,是品格。---爱因斯坦

浙公网安备 33010602011771号