查找 NumPy 数组中最小的 k 个值
查找 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]按降序对数组进行排序后,我们使用[:k]切片前四个条目。
示例
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 # Generate a random 2-dimensional array of size 5x5 array = np.random.randint(0, 10, size=(5, 5)).astype(float) # convert to float # Print the original array print("Original array:") print(array) # Flatten the array to make it 1-dimensional flat_array = array.flatten() # Find the 3 smallest values in the flattened array k = 3 smallest_values = np.sort(flat_array)[:k] # Create a mask for the smallest values mask = np.isin(array, smallest_values) # Replace the smallest values with NaNs array[mask] = np.nan # Print the modified array print("Modified array:") print(array)
输出
Original 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.]] Modified array: [[ 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。
应用
识别数据集中异常值
根据项目的值进行排名
分析股市趋势
机器学习和数据挖掘算法
结论
这篇博文中介绍了在 NumPy 数组中查找k 个最小值的挑战。除了许多简短的代码示例和一个带有详细解释的大型示例之外,我们还包含了克服此问题的语法和技术,并讨论了此问题在数据分析等领域中的一些应用方式。查找 k 个最小值只是 NumPy 用于处理多维数组和矩阵的强大工具包提供的众多有用功能之一。