numpy(排序,搜索和计数,集合操作)

本文介绍了NumPy库中关于排序(如`np.sort`、`np.argsort`、`np.lexsort`、`np.partition`、`np.argpartition`)、搜索(`np.argmax`、`np.argmin`、`np.nonzero`、`np.where`)和计数(`numpy.count_nonzero`)的功能,以及集合操作(`numpy.unique`、`numpy.in1d`、`numpy.intersect1d`、`numpy.union1d`、`numpy.setdiff1d`、`numpy.setxor1d`)的使用方法。这些工具在数据分析和机器学习中至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排序

  • np.sort

(array,axis= ,kind='quicksort ',order=None)
axis:0按列,1按行,-1沿最后的轴排序

kind:排序的算法 有快排’quicksort’、混排’mergesort’、堆排’heapsort’

order:可指定字段排序

  • np.argsort

    进行间接排序,并返回索引值

x = np.random.randint(0, 10, 10)
[7 5 9 8 3 4 6 0 7 1]
y=np.argsort(x) 当取-x时则是从大到小排序
[7 9 4 5 1 6 0 8 3 2] 索引值
[0 1 3 4 5 6 7 7 8 9] 排序结果
  • np.lexsort(array[ , axis=])

返回的是一个索引数组,用于多个列排序的顺序

keys参数必须是可以转换为相同形状的数组的对象序列

按照第一列的升序或者降序对整体数据进行排序

一维度:
x = np.array([1, 5, 1, 4, 3, 4, 4])
[1 5 1 4 3 4 4]
a = np.lexsort([-1*x])
[5 4 4 4 3 1 1]
a = np.lexsort([x])
[1 1 3 4 4 4 5]

二维度:
x = np.array([[1, 5, 1, 4, 3, 4, 4], 
[9, 4, 0, 4, 0, 2, 1], 
[4, 2, 3, 4, 5, 6, 7]])

[[1 5 1 4 3 4 4]
 [9