NumPy 排序、条件筛选函数学习笔记

NumPy 是 Python 中一个重要的数值计算库,拥有大量高性能的数学函数和数据结构。其中包括了许多常用的排序、条件筛选函数,本文将介绍这些函数的使用方法及示例。

排序函数

sort

sort 函数可以用来对数组进行排序,可以指定排序方式(升序或降序)。默认情况下,sort 函数会按照最后一个轴的顺序排序。

pythonCopy Code
import numpy as np arr = np.array([3, 2, 1, 5, 4]) arr_sorted = np.sort(arr) print(arr_sorted) # [1 2 3 4 5] arr_sorted_desc = np.sort(arr)[::-1] print(arr_sorted_desc) # [5 4 3 2 1]

argsort

argsort 函数可以返回数组排序后的索引值,默认结果是升序排列。可以通过参数指定降序排列。

pythonCopy Code
import numpy as np arr = np.array([3, 2, 1, 5, 4]) arr_argsort = np.argsort(arr) print(arr_argsort) # [2 1 0 4 3] arr_argsort_desc = np.argsort(arr)[::-1] print(arr_argsort_desc) # [3 4 0 1 2]

条件筛选函数

where

where 函数可以根据指定的条件,在输入数组中返回元素的索引值。可以用来查找数组中满足某个特定条件的元素。

pythonCopy Code
import numpy as np arr = np.array([1, 2, 3, 4, 5]) condition = arr > 3 indices = np.where(condition) print(indices) # (array([3, 4]),) # 可以利用返回的索引值设置对应元素的值 arr[indices] = 0 print(arr) # [1 2 3 0 0]

nonzero

nonzero 函数返回数组中非零元素的索引值。

pythonCopy Code
import numpy as np arr = np.array([0, 1, 2, 0, 3, 0]) nonzero_indices = np.nonzero(arr) print(nonzero_indices) # (array([1, 2, 4]),) # 可以利用返回的索引值设置对应元素的值 arr[nonzero_indices] = -1 print(arr) # [ 0 -1 -1 0 -1 0]

示例

下面是一些排序、条件筛选函数的实际使用示例:

例1:查找二维数组中每行最小值的索引值

pythonCopy Code
import numpy as np arr = np.array([[3, 2, 1], [6, 5, 4]]) min_indices = np.argmin(arr, axis=1) print(min_indices) # [2 2]

例2:根据条件筛选数组中的元素

pythonCopy Code
import numpy as np arr = np.array([-2, -1, 0, 1, 2]) condition = arr > 0 positive_elems = arr[condition] print(positive_elems) # [1 2]

例3:将二维数组的每行元素按照第一列的大小排序

pythonCopy Code
import numpy as np arr = np.array([[3, 2, 1], [6, 5, 4], [9, 8, 7]]) sorted_indices = np.argsort(arr[:, 0]) arr_sorted = arr[sorted_indices] print(arr_sorted) """ [[3 2 1] [6 5 4] [9 8 7]] """

以上是 NumPy 排序、条件筛选函数的相关内容,希望能够帮助读者更好地使用 NumPy 库进行数值计算。