मैं निम्नलिखित आयामों के साथ इन चरों है:सबसे तेजी से रास्ता Numpy उपयोग करने के लिए - बहुआयामी रकम और उत्पादों
A - (3,)
B - (4,)
X_r - (3,K,N,nS)
X_u - (4,K,N,nS)
k - (K,)
और मैं हर संभव n
और s
, जिस तरह से मैं इसे कर रहा हूँ के लिए (A.dot(X_r[:,:,n,s])*B.dot(X_u[:,:,n,s])).dot(k)
गणना करने के लिए चाहते हैं अब वह इस प्रकार है:
np.array([[(A.dot(X_r[:,:,n,s])*B.dot(X_u[:,:,n,s])).dot(k) for n in xrange(N)] for s in xrange(nS)]) #nSxN
लेकिन इस सुपर धीमी है और मैं अगर वहाँ यह करने का एक बेहतर तरीका था सोच रहा था लेकिन मुझे यकीन नहीं कर रहा हूँ।
लेकिन वहाँ एक और गणना है कि मैं कर रहा हूँ और मुझे यकीन है कि यह अनुकूलित किया जा सकता हूँ:
np.sum(np.array([(X_r[:,:,n,s]*B.dot(X_u[:,:,n,s])).dot(k) for n in xrange(N)]),axis=0)
इस एक मैं सिर्फ एक धुरी में यह योग और बाद सरणी त्यागने के लिए एक numpy
सरणी बनाने हूँ में । यदि यह 1-डी में एक सूची थी, तो मैं reduce
का उपयोग करूंगा और इसे अनुकूलित करूँगा, मुझे numpy
सरणी के लिए क्या उपयोग करना चाहिए?
@ JoãoAbrantes संपादन में पी 5 क्या है? क्या यह पी 1 होना चाहिए? – Divakar
हाँ यह पी 1 होना चाहिए! –
@ JoãoAbrantes आपके संपादन की सराहना करते हैं! – Divakar