Numpy 数组中最小值的索引 您所在的位置:网站首页 python输出列表中最大元素的位置 Numpy 数组中最小值的索引

Numpy 数组中最小值的索引

2024-03-16 16:20| 来源: 网络整理| 查看: 265

Numpy 数组中最小值的索引

在Python中,Numpy 是一个非常有用的库,用于科学计算、数值分析和数据科学。它提供了一个快速、高效的多维数组对象 ndarray,以及处理这些数组的工具。

在数据处理中,我们通常会需要查找数组中最小值的索引。在这篇文章中,我们将介绍如何在给定的 Numpy 数组中查找最小值的索引。

阅读更多:Numpy 教程

Numpy 数组

在开始之前,让我们先了解下 Numpy 数组是什么。Numpy 提供了一个高性能的多维数组和矩阵计算工具包,被广泛应用于数据分析和数据科学领域。

Numpy 数组是一个多维数据集,它们具有以下特点: 1. 具有相同类型的元素。 2. 可以通过索引访问和操作元素。 3. 可以使用广播功能进行操作。 4. 速度快且内存占用少。

例如,我们可以创建一个三维的 Numpy 数组,并访问其中的元素:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr.shape) # 输出:(2, 2, 2) print(arr[0,0,0]) # 输出:1 查找 Numpy 数组中最小值的索引

查找 Numpy 数组中最小值的索引非常简单。我们可以使用 Numpy 库中的 argmin() 函数来查找最小值的索引。以下是一个示例:

import numpy as np arr = np.array([5, 2, 10, 6, 2, 7, 1]) # 查找最小值的索引 min_index = np.argmin(arr) print("数组: ", arr) print("最小值的索引: ", min_index)

输出:

数组: [5 2 10 6 2 7 1] 最小值的索引: 6

在上面的代码中,我们首先创建了一个包含整数的 Numpy 数组。然后,我们使用 argmin() 函数查找最小值的索引,并将其存储在 min_index 变量中。

我们可以看到,最小值的索引为 6,这意味着数组中的最小值为 1(数组中的第七个元素)。

查找二维 Numpy 数组中最小值的索引

当处理二维 Numpy 数组时,我们可以使用 argmin() 函数的两个可选参数:axis 和 keepdims。

axis 参数指定对哪个轴应用函数,可以接受以下值: 1. None:应用函数到整个数组,返回一个标量值 2. 整数值:应用函数到指定的轴,返回一个比原数组少一维的数组 3. 元组:应用函数到指定的轴,保持数组的维数不变

keepdims 参数指定是否保持数组的维度。如果它被设置为 True,则结果将是包含一个长度为 1 的轴的数组(与原数组相同的维数)。

以下是查找二维 Numpy 数组中最小值的索引的示例:

import numpy as np arr = np.array([[2, 1, 3], [4, 5, 1], [6, 7, 8]]) # 沿着第 0 轴查找最小值的索引 min_index = np.argmin(arr, axis=0, keepdims=True) print("数组: ") print(arr) print("最小值的索引: ") print(min_index)

输出:

数组: [[2 1 3] [4 5 1] [6 7 8]] 最小值的索引: [[0 0 1]]

在上面的代码中,我们首先创建了一个包含 3 行和 3 列的二维 Numpy 数组。然后,我们使用 argmin() 函数并将其应用到第0个轴,以在每一列中查找最小值的索引。我们还将 keepdims 设为 True,以保持数组的维度。

结果,我们得到了一个包含单个轴的数组,其值为最小值所在的索引。在这个例子中,最小值为 1,它在数组的第 0 行第 0 列和第 2 行第 1 列中出现。

查找三维 Numpy 数组中最小值的索引

处理三维 Numpy 数组的方式与处理二维数组类似。我们将使用 argmin() 函数的三个可选参数:axis、keepdims 和 arrray。

以下是一个查找三维 Numpy 数组中最小值的索引的示例:

import numpy as np arr = np.array([[[2, 1, 3], [4, 5, 1]], [[6, 7, 8], [10, 2, 1]]]) # 沿着第 2 轴查找最小值的索引 min_index = np.argmin(arr, axis=2, keepdims=True) print("数组: ") print(arr) print("最小值的索引: ") print(min_index)

输出:

数组: [[[2 1 3] [4 5 1]] [[6 7 8] [10 2 1]]] 最小值的索引: [[[1] [2]] [[0] [2]]]

在上面的代码中,我们创建了一个包含 2 个 shape 为 (2, 3) 的二维数组的三维 Numpy 数组。然后,我们使用 argmin() 函数并将其应用到第2个轴,以在每个数组中的每个子数组中查找最小值的索引。我们还将 keepdims 设为 True,以保持数组的维度。

结果,我们得到的是一个包含单个轴的数组,它的值是每个子数组中最小值所在的索引。在这个例子中,第一组子数组中最小值为 1,它在数组的第 1 列中出现;第二组子数组中最小值为 1,它在数组的第 2 列中出现。

使用 where() 函数查找最小值的索引

另一种查找 Numpy 数组中最小值索引的方法是使用 where() 函数。与 argmin() 函数不同,在 where() 函数中,您可以使用条件选择最小值。

以下是一个使用 where() 函数查找最小值索引的示例:

import numpy as np arr = np.array([5, 2, 10, 6, 2, 7, 1]) # 找到最小值的索引 min_index = np.where(arr == np.min(arr)) print("数组: ", arr) print("最小值的索引: ", min_index)

输出:

数组: [5 2 10 6 2 7 1] 最小值的索引: (array([6]),)

在上面的代码中,我们首先创建了一个包含整数的 Numpy 数组。然后,我们使用 where() 函数和条件 arr np.min(arr) 来查找最小值的索引。最小值的索引被包含在元组中(本例中为第七个元素),我们可以使用它来访问数组中的最小值。

总结

在本文中,我们介绍了如何在 Numpy 数组中查找最小值的索引。我们使用 argmin() 和 where() 函数来查找最小值的索引。我们还讨论了处理二维和三维 Numpy 数组的方法。

Numpy 数组是 Python 数据分析和科学计算中最常用的数据类型之一。掌握如何快速查找 Numpy 数组中的最小值索引,可以帮助我们更轻松地进行数据分析和处理。希望此文可以对您有所帮助!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有