排序
.sort()
x = np.arange(16) # array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
# 随机打乱顺序,且x顺序改变
np.random.shuffle(x) # array([13, 2, 6, 7, 11, 10, 3, 4, 8, 0, 5, 1, 9, 14, 12, 15])
np.sort(x)
x # array([13, 2, 6, 7, 11, 10, 3, 4, 8, 0, 5, 1, 9, 14, 12, 15])
x.sort()
x # array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
X = np.random.randint(10, size=(4,4))
# 每列按大小排序
np.sort(X, axis=0)
# 每行按大小排序
np.sort(X, axis=1)
使用索引
.argsort()
x = np.arange(16)
np.random.shuffle(x)
x # array([ 5, 13, 0, 10, 2, 14, 1, 3, 11, 8, 12, 9, 7, 4, 6, 15])
np.argsort(x) # array([ 2, 6, 4, 7, 13, 0, 14, 12, 9, 11, 3, 8, 10, 1, 5, 15],dtype=int64)
"""
所得结果为打乱后数据从小到大排列的索引
"""
.partition()
np.partition(x, 7) # array([ 1, 3, 0, 4, 2, 5, 6, 7, 8, 12, 13, 9, 11, 10, 14, 15])
"""
np.partition(x,7) # 表示数组 x 中第 7 小的元素位于排序完成数组 x 的第 7 个位置上
然后小于该元素的位于该元素左边,大于该元素的位于右边,
左右两边没有特别的排序要求,只要求左边小于该元素,右边大于该元素即可
"""
.argpartition()
#返回的是排序完成的元素索引数组
np.argpartition(x, 7)
np.random.seed(10)
X = np.random.randint(10, size=(4,4))
"""
array([[9, 4, 0, 1],
[9, 0, 1, 8],
[9, 0, 8, 6],
[4, 3, 0, 4]])
"""
np.argsort(X, axis=1)
"""
array([[2, 3, 1, 0],
[1, 2, 3, 0],
[1, 3, 2, 0],
[2, 1, 0, 3]], dtype=int64)
"""
np.argpartition(X, 2, axis=1)
"""
array([[2, 3, 1, 0],
[1, 2, 3, 0],
[1, 3, 2, 0],
[2, 1, 0, 3]], dtype=int64)
"""