numpy.argmin 使用


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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM