python使用numpy尋找二維數組的最值及其下標方法分析
一、通過np.max和np.where尋找【所有滿足條件的解】
通過np.max()
找矩陣的最大值,再通過np.where
獲得最大值的位置,代碼如下:
import numpy as np a = np.random.randint(1, 10, size=12) a = a.reshape((3,4)) print(a) print(np.max(a)) r, c = np.where(a == np.max(a)) print(r,c)
輸出:
[[7 8 9 4]
[9 3 9 3]
[5 6 1 5]]9
[0 1 1] [2 0 2]
輸出的是兩個array,分別是x和y數組,即找出了和這個最值相等的所有位置。
二、通過np.argmax尋找【第一個滿足條件的解】
把矩陣展成一維,np.argmax可以返回最大值在這個一維數組中第一次出現的位置,用這個位置除以矩陣的列數,所得的商就是最大值所在的行,所得的余數就是最大值所在的列。
import numpy as np a = np.random.randint(1, 10, size=12) a = a.reshape((3,4)) print(a) print(np.max(a)) m = np.argmax(a) # 把矩陣拉成一維,m是在一維數組中最大值的下標 r, c = divmod(m, a.shape[1]) # r和c分別為商和余數,即最大值在矩陣中的行和列 # m是被除數, a.shape[1]是除數 print(r, c)
輸出:
[[5 5 9 7]
[5 5 8 9]
[2 3 9 3]]9
0 2
可以看到只找到了第一個出現的最大值,后續(xù)的是搜索不到的。
以上就是python使用numpy尋找二維數組的最值及其下標的詳細內容,更多關于python numpy最值下標的資料請關注腳本之家其它相關文章!
相關文章
Python 使用requests模塊發(fā)送GET和POST請求的實現代碼
這篇文章主要介紹了Python 使用requests模塊發(fā)送GET和POST請求的實現代碼,需要的朋友可以參考下2016-09-09Django在urls.py利用函數path()配置路由時傳遞參數給調用的視圖函數的方法(推薦)
這篇文章主要介紹了Django在urls.py利用函數path()配置路由時傳遞參數給調用的視圖函數的方法(推薦),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01