numpy.square
के बीच कोई अंतर नहीं है और **
ऑपरेटर का उपयोग एक Numpy सरणी पर कर रहा है?पायथन numpy.square बनाम **
जो मैं देख सकता हूं उससे यह एक ही परिणाम उत्पन्न करता है।
निष्पादन की दक्षता में कोई अंतर?
स्पष्टीकरण के लिए एक उदाहरण:
In [1]: import numpy as np
In [2]: A = np.array([[2, 2],[2, 2]])
In [3]: np.square(A)
Out[3]:
array([[4, 4],
[4, 4]])
In [4]: A ** 2
Out[4]:
array([[4, 4],
[4, 4]])
उपयोग 'timeit' स्पष्ट तस्वीर प्राप्त करने के लिए कर सकते हैं, अगर यह है कि तुम क्या करने के बाद कर रहे हैं। – Marcin
वे काफी समान नहीं हैं, 'np.square() 'तत्व तत्व स्क्वायरिंग करता है, जबकि कुछ वर्ग उदा। मैट्रिक्स '__pow __() 'ऑपरेटर कुछ अलग करता है। सरणी वर्ग के लिए वे वही हैं। 'सरणी' को 'मैट्रिक्स' में बदलें और अंतर देखें। – AChampion
इसके अलावा, एक्स ** 2 (जहां एक्स एक numpy सरणी है) आपको कुछ नकारात्मक तत्व दे सकता है, जबकि np.square (x) – BlackBear