np.max
सिर्फ np.amax
के लिए एक उपनाम है। यह फ़ंक्शन केवल एकल इनपुट सरणी पर काम करता है और उस संपूर्ण सरणी में अधिकतम तत्व का मान पाता है (एक स्केलर लौटा रहा है)। वैकल्पिक रूप से, यह axis
तर्क लेता है और इनपुट सरणी (एक नई सरणी लौटने) के अक्ष के साथ अधिकतम मान प्राप्त करेगा।
>>> a = np.array([[0, 1, 6],
[2, 4, 1]])
>>> np.max(a)
6
>>> np.max(a, axis=0) # max of each column
array([2, 4, 6])
np.maximum
के डिफ़ॉल्ट व्यवहार को दो सरणियों लेने के लिए और उनके तत्व के लिहाज से अधिकतम गणना करने के लिए है। यहां, 'संगत' का अर्थ है कि एक सरणी को दूसरे पर प्रसारित किया जा सकता है। उदाहरण के लिए:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
लेकिन np.maximum
भी एक universal function जिसका मतलब है कि यह अन्य सुविधाओं और तरीकों जो उपयोगी में आते हैं जब बहुआयामी सरणियों के साथ काम किया है। उदाहरण के लिए आप एक सरणी के साथ संचयी अधिकतम (या सरणी के एक विशेष अक्ष) की गणना कर सकते हैं:
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
यह np.max
साथ संभव नहीं है।
आप np.maximum
कुछ हद तक np.max
की नकल कर सकते हैं जब np.maximum.reduce
का उपयोग कर:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
बेसिक परीक्षण से पता चलता है दो दृष्टिकोण प्रदर्शन में तुलना कर रहे हैं।
धन्यवाद। जाहिर है, एक 'रूट' उद्देश्य के लिए 'अधिकतम' के रूप में 'अधिकतम' के रूप में 'amax' का उपयोग कर सकता है, यानी' numpy.amax ([a1, a2], axis = 0) '--- लेकिन क्या यह इस व्यवहार के लिए अनुकूल नहीं है 'numpy.maximum'? इसी तरह, 'numpy.amax' (उदा। 'अक्ष' पैरामीटर) की अतिरिक्त niceties इसे 'ufunc' होने से रोकें? – DilithiumMatrix
यह सही है, 'अमेक्स' को तत्व-वार तुलना के लिए अनुकूलित नहीं किया गया है - किसी भी इनपुट को एक अम्पी सरणी होने की आवश्यकता होगी, ताकि ऑपरेशन चलाने से पहले सूची परिवर्तित हो जाएगी (माना जाता है कि दो आकार समान थे)। 'अमेक्स' के लिए दस्तावेज़ विशेष रूप से कहते हैं कि 'अधिकतम' यहां तेज है। –
दूसरे प्रश्न पर: मुझे लगता है कि 'अमैक्स' * को ufunc में बनाया जा सकता है, हालांकि यूफुनक्स का मुख्य उद्देश्य संचालन को सरणी के बीच प्रसारित करने की अनुमति देना है। 'अधिकतम' को एक यूनरी ufunc बनाने की आवश्यकता नहीं है। मुझे लगता है कि यूफंक्स से पहले 'अमेक्स' अस्तित्व में था वास्तव में एक चीज थी (यह संख्यात्मक, न्यूमपी के माता-पिता से आई थी) इसलिए भी वंशावली के लिए रखा जाता है। –