1.3.2.5 数据排序
按一个轴排序:
In [169]:
a = np.array([[4, 3, 5], [1, 2, 1]])
b = np.sort(a, axis=1)
b
Out[169]:
array([[3, 4, 5],
[1, 1, 2]])
注:每行分别排序!
原地排序:
In [170]:
a.sort(axis=1)
a
Out[170]:
array([[3, 4, 5],
[1, 1, 2]])
象征索引排序:
In [171]:
a = np.array([4, 3, 1, 2])
j = np.argsort(a)
j
Out[171]:
array([2, 3, 1, 0])
In [172]:
a[j]
Out[172]:
array([1, 2, 3, 4])
找到最大值和最小值:
In [173]:
a = np.array([4, 3, 1, 2])
j_max = np.argmax(a)
j_min = np.argmin(a)
j_max, j_min
Out[173]:
(0, 2)
练习:排序
- 试一下原地和非原地排序
- 试一下用不同的数据类型创建数组并且排序。
- 用
all
或者array_equal
来检查一下结果。 - 看一下
np.random.shuffle
,一种更快创建可排序输入的方式。 - 合并
ravel
、sort
和reshape
。 - 看一下
sort
的axis
关键字,重写一下这个练习。