argsort返回numpy数组从小到大排序后的索引值
import numpy as np
values = np.array([5, 0, 1, 3, 2])
indexer = values.argsort()
indexe
array([1, 2, 4, 3, 0], dtype=int64)
values[indexer]
array([0, 1, 2, 3, 5])
应用到数组中就是根据数组的 某一行进行排序后的索引值
arr= np.random.randn(3,5)
arr[0] = values
arr
array([[ 5. , 0. , 1. , 3. , 2. ],
[-0.49240371, -1.40697253, 0.66089861, 0.3253901 , 0.120429 ],
[ 0.3513586 , -0.02297533, -0.60155572, -0.23488821, -1.31682229]])
arr[0].argsort()
array([1, 2, 4, 3, 0], dtype=int64)
arr[:,arr[0].argsort()]
array([[ 0. , 1. , 2. , 3. , 5. ],
[-1.40697253, 0.66089861, 0.120429 , 0.3253901 , -0.49240371],
[-0.02297533, -0.60155572, -1.31682229, -0.23488821, 0.3513586 ]])
网友评论