查找 NumPy 数组的 k 个最小值

numpyserver side programmingprogramming

查找 NumPy 数组的 k 个最小值

安装和语法

Pip 是 Python 的软件包安装程序,通常用于安装 NumPy

pip install numpy

以下函数可用于识别具有最小值的 k 个 NumPy 数组元素 −

np.sort(array)[:k]

这将返回按升序排序后的排序数组的前 k 个项。可以使用下面显示的替代语法对数组进行排序,该语法将检索最后 k 个条目并按降序对数组进行排序 -

np.sort(array)[::-1][:k]

算法

  • 查找 NumPy 数组的 k 个最小值的算法相对简单 -

  • 按升序对数组进行排序

  • 返回排序数组的前 k 个元素

  • 要发现 k 个最大值,您还可以按降序对数组进行排序并检索最后 k 个条目。

示例

import numpy as np
array = np.array([3, 7, 1, 4, 2, 8, 5, 9, 6])
k = 3
result = np.sort(array)[:k]
print(result)

输出

[1 2 3]

我们想从一组数字中找出三个最低值。使用 np.sort() 方法对数组进行升序排序,然后使用 [:k] 截取前三个条目。

示例

import numpy as np
array = np.array([3.2, 7.8, 1.5, 4.6, 2.9, 8.1, 5.4, 9.3, 6.7])
k = 4
result = np.sort(array)[::-1][:k]
print(result)

输出

[9.3 8.1 7.8 6.7]

我们正在寻找四个浮点数数组中的最大值。我们使用 np.sort() 方法对数组进行降序排序,然后使用 [::-1] 对前四个条目进行切片。

示例

import numpy as np
array = np.array([[1, 2], [3, 4]])
k = 2
result = np.sort(array.flatten())[:k]
print(result)

输出

[1 2]

flatten() 函数用于将二维数组转换为一维数组,然后 np.sort()和切片用于定位数组中的两个最低值。

示例

import numpy as np

# 生成一个大小为 5x5 的随机二维数组
array = np.random.randint(0, 10, size=(5, 5)).astype(float) # 转换为浮点数

# 打印原始数组
print("原始数组:")
print(array)

# 将数组展平,使其成为一维数组
flat_array = array.flatten()

# 在展平后的数组中找出 3 个最小值
k = 3
smallest_values = np.sort(flat_array)[:k]

# 为最小值创建掩码
mask = np.isin(array, minimal_values)

# 将最小值替换为 NaN
array[mask] = np.nan

# 打印修改后的数组
print("修改后的数组:")
print(array)

输出

原始数组:
[[5. 7. 7. 6. 4.]
 [6. 2. 5. 4. 3.]
 [5. 1. 2. 0. 9.]
 [7. 9. 7. 1. 5.]
 [3. 0. 2. 5. 2.]]
修改后的数组:
[[ 5.  7.  7.  6.  4.]
 [ 6.  2.  5.  4.  3.]
 [ 5. nan  2. nan  9.]
 [ 7.  9.  7. nan  5.]
 [ 3. nan  2.  5.  2.]]

使用 `np.random.randint()` 生成随机二维整数数组。然后,我们使用 `array.flatten()` 展平该数组,并使用 `np.sort()` 找到 3 个最小值。我们使用 `np.isin()` 为最小值创建掩码,并使用 `np.nan` 将其替换为 NaN。最后,我们打印修改后的数组以验证最小值是否已被 NaN 替换。

应用

  • 识别数据集中的异常值

  • 根据值对项目进行排名

  • 分析股票市场趋势

  • 机器学习和数据挖掘算法

结论

本博客介绍了识别 NumPy 数组中的 k 个最低值 的挑战。除了大量简短的代码示例和一个带有详尽解释的大型示例外,我们还介绍了解决此问题的语法和技术,并讨论了此问题在数据分析等领域的一些应用方式。查找 k 个最低值只是 NumPy 用于处理多维数组和矩阵的强大工具包提供的众多有用功能之一。


相关文章