Python学习笔记——Numpy数组的排序和搜索
函数说明 sort函数 sort函数能将数组中的数据从小到大进行排序 argsort函数 argsort函数会从小到大返回对应元素的索引值 一维数组 先构建一个一维数组 a(元素随机输入) 用sort函数进行排序,默认升序 需要降序排列的可以用下面方法 利用argsort函数则可以返回数组a中元素从小到大排列的索引值 二维数组 构建一个二维数组 t(元素随机输入) 使用sort函数进行排序,默认会分别将每一行的元素进行升序排序 也可以添加axis参数使其按列进行排序,默认 axis = 1,即按行排序;axis = 0 时,按列排序 拓展 where函数 where 函数类似Excel中 在Python的科学计算库NumPy中,数组的排序和搜索是常见的操作,这对于数据分析和处理至关重要。本篇学习笔记将详细介绍NumPy中的`sort`和`argsort`函数,以及拓展的`where`函数。 `sort`函数是NumPy提供的一种用于对数组进行排序的工具。它能够将数组中的数据从小到大排列。例如,我们可以创建一个一维数组`a`,然后调用`np.sort(a)`对其进行升序排序。如果需要降序排序,可以先使用Python内置的`sorted`函数并设置`reverse=True`,再将其转换回数组形式。例如: ```python import numpy as np a = np.array([4,5,2,8,22,1,6,9,8,4,7,18,12]) np.sort(a) sorted_a_descending = np.array(sorted(a, reverse=True)) ``` 此外,`argsort`函数则有所不同,它并不改变原数组,而是返回数组元素从小到大的索引值。这在某些情况下非常有用,例如查找最小或最大的元素位置。使用`np.argsort(a)`即可得到索引值。 对于二维数组,`sort`函数同样适用。默认情况下,`sort(t)`会按行对二维数组`t`进行排序,如果想要按列排序,可以设置`axis=0`。例如: ```python t = np.array([[3,4,2],[5,9,4],[6,3,2],[4,8,7]]) np.sort(t, axis=1) # 按行排序 np.sort(t, axis=0) # 按列排序 ``` `argsort`在二维数组上也保持同样的行为,返回排序后的索引。 接下来,我们介绍`where`函数,它与Excel中的`IF`函数类似,可以进行条件判断。`np.where(condition, x, y)`会在`condition`为真的情况下返回`x`的值,否则返回`y`的值。例如,如果我们要在数组`t`中找到所有大于5的元素,可以写成`np.where(t > 5, t, 0)`,这将返回一个新数组,其中大于5的元素保持不变,其他元素置为0。 `where`函数也可以用于查找特定元素的索引。比如,要找到数组`t`中所有等于8的元素的索引,可以使用`np.where(t == 8)`。 `extract`函数是一个筛选功能,可以根据条件提取数组中满足条件的元素。如`np.extract(t >= 5, t)`将返回所有大于或等于5的元素组成的数组。 总结来说,`sort`和`argsort`是NumPy中用于数组排序的基础工具,而`where`函数则提供了基于条件的元素操作,它们共同构成了NumPy处理数组时的强大功能。通过熟练掌握这些函数,能够有效地对数据进行预处理和分析。在实际应用中,根据具体需求灵活运用这些函数,可以大大提高代码的效率和可读性。
- 粉丝: 5
- 资源: 955
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页