numpy.argmin()如何返回两个最小值索引
时间: 2024-10-20 07:04:36 浏览: 31
`numpy.argmin()`函数在NumPy库中用于找到数组中的最小值对应的索引位置。当你需要找出数组中不止一个最小值及其索引时,可以使用这个函数配合`axis`参数。默认情况下,如果没有指定`axis`,`argmin`会查找整个数组中的全局最小值。
如果你想同时获取数组中所有最小值的索引,你可以这样做:
1. 首先,计算数组的最小值:
```python
min_values = np.min(array)
```
2. 然后,使用`np.where()`函数找到这些最小值的所有索引:
```python
indices = np.where(array == min_values)
```
这将返回一个包含元组的数组,每个元组对应于数组的一个最小值及其所在的行索引(如果`axis=0`)或列索引(如果`axis=1`)。
如果你想要得到的是二维数组中每行(或列)的最小值索引,可以传递`axis=0`(对于行)或`axis=1`(对于列)作为`argmin`的参数:
```python
row_indices = np.argmin(array, axis=0)
column_indices = np.argmin(array, axis=1)
```
相关问题
numpy.argmax() 和 numpy.argmin()
numpy.argmax() 函数返回数组中最大值的索引,而 numpy.argmin() 函数返回数组中最小值的索引。这两个函数都可以接受一个参数 axis,用于指定沿着哪个轴计算最大值或最小值。如果不指定 axis 参数,则会将整个数组视为一个一维数组来计算最大值或最小值。例如:
```python
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 1]])
print(np.argmax(a)) # 输出:4,即 a[1, 1] 的索引
print(np.argmax(a, axis=0)) # 输出:[1 1 0],即每列最大值的索引
print(np.argmin(a)) # 输出:0,即 a[0, 0] 的索引
print(np.argmin(a, axis=1)) # 输出:[0 2],即每行最小值的索引
```
numpy.argmin()如何求两个值
`numpy.argmin()`函数是NumPy库中的一个功能,它用于返回数组中的最小值的索引位置。当你有两个独立的数组需要找出对应元素中较小值的位置时,可以分别对每个数组应用`argmin()`,然后将它们组合起来。
例如,假设你有两组一维数组`array1`和`array2`:
```python
import numpy as np
array1 = [5, 9, 2, 7]
array2 = [8, 4, 6, 3]
# 对每个数组找到最小值的索引
index_array1 = np.argmin(array1)
index_array2 = np.argmin(array2)
print(f"Array 1最小值的索引是 {index_array1}")
print(f"Array 2最小值的索引是 {index_array2}")
# 如果你需要找出两个数组中对应位置的最小值,你可以创建一个新的数组并同时寻找
combined_indices = (np.arange(len(array1)), np.argmin(np.stack((array1, array2), axis=0), axis=1))
print("对应位置的最小值索引:", combined_indices)
```
阅读全文