https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.argmin.html
numpy.argmin(a, axis=None, out=None)[source]
給出axis方向最小值的下表
Parameters: | a : Input array. axis : 默認將輸入數組展平。否則,按照axis方向 out : 可選 |
---|---|
Returns: | index_array : 下標組成的數組。shape與輸入數組a去掉axis的維度相同。 |
舉例:
1、展平、axis=0、axis=1
>>> a = np.arange(6).reshape(2,3) >>> a array([[0, 1, 2], [3, 4, 5]]) >>> np.argmin(a) 0 >>> np.argmin(a, axis=0) array([0, 0, 0]) >>> np.argmin(a, axis=1) array([0, 0])
2、多個最小值,只顯示第一個
>>> b = np.arange(6) >>> b[4] = 0 >>> b array([0, 1, 2, 3, 0, 5]) >>> np.argmin(b) # Only the first occurrence is returned. 0
=============================
若尋找一個列表的最大(小)值及其對應的索引:
list = [9, 12, 88, 14, 25] max_index = max(list) # 最大值的索引 max_value = list.index(max(list)) # 返回最大值 # 最小的話 max換成min
若是numpy中arrary的類型:
a= np.array([9, 12, 88, 14, 25]) list_a = a.tolist() list_a_max_list = max(list_a) #返回最大值 max_index = list_a.index(max(list_a)) # 返回最大值的索引
-
min/max是python內置的函數
-
np.argmin/np.argmax是numpy庫中的成員函數
(可適合處理numpy.ndarray對象,可選的參數是axis=0或者1)
# 按每列求出最小值的索引 axis=0
# 按每行求出最小值的索引 axis=1
import numpy as np a = np.array([1, 2, 3, 4]) b = np.array((5, 6, 7, 8)) c = np.array([[11, 2, 8, 4], [4, 52, 6, 17], [2, 8, 9, 100]]) print(a) print(b) print(c) print(np.argmin(c)) print(np.argmin(c, axis=0)) # 按每列求出最小值的索引 print(np.argmin(c, axis=1)) # 按每行求出最小值的索引 # 最小的話 min換成max