मैं एक बहु-आयामी NumPy सरणी में सबसे बड़े मूल्य की स्थिति (सूचकांक) कैसे प्राप्त कर सकता हूं?
जवाबों:
argmax()
विधि की मदद करनी चाहिए।
अपडेट करें
(टिप्पणी पढ़ने के बाद) मेरा मानना है कि argmax()
विधि बहुआयामी सरणियों के लिए भी काम करेगी। जुड़ा हुआ दस्तावेज़ इसका एक उदाहरण देता है:
>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3
अपडेट २
( केनीटीएम की टिप्पणी के लिए धन्यवाद ) आप unravel_index(a.argmax(), a.shape)
एक टपल के रूप में सूचकांक प्राप्त करने के लिए उपयोग कर सकते हैं :
>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)
unravel_index(a.argmax(), a.shape)
इंडेक्स को टपल के रूप में प्राप्त करने के लिए उपयोग करें ।
(संपादित करें) मैं एक पुराने उत्तर की बात कर रहा था जिसे हटा दिया गया था । और स्वीकृत उत्तर मेरे बाद आया। मैं सहमत हूं कि argmax
मेरे उत्तर से बेहतर है।
क्या ऐसा करना अधिक पठनीय / सहज नहीं होगा?
numpy.nonzero(a.max() == a)
(array([1]), array([0]))
या,
numpy.argwhere(a.max() == a)
एक वैकल्पिक तरीका है numpy
सरणी को list
उपयोग max
और index
विधियों में बदलना :
List = np.array([34, 7, 33, 10, 89, 22, -5])
_max = List.tolist().index(max(List))
_max
>>> 4