के साथ पुनरावृत्ति गणना को सदिश करने की कोशिश कर रहा हूं मैं संख्या में वेक्टरकृत रूप का उपयोग करके कोड का कुछ टुकड़ा अधिक कुशल बनाने की कोशिश कर रहा हूं। मुझे आपको एक उदाहरण दिखाएं ताकि आप जान सकें कि मेरा क्या मतलब है।numpy
को देखते हुए निम्नलिखित कोड:
a = np.zeros([4,4])
a[0] = [1., 2., 3., 4.]
for i in range(len(a)-1):
a[i+1] = 2*a[i]
print a
यह आउटपुट
[[ 1. 2. 3. 4.]
[ 2. 4. 6. 8.]
[ 4. 8. 12. 16.]
[ 8. 16. 24. 32.]]
जब मैं अब इस तरह कोड vectorize करने की कोशिश:
a = np.zeros([4,4])
a[0] = [1., 2., 3., 4.]
a[1:] = 2*a[0:-1]
print a
मैं सिर्फ पहली यात्रा ठीक से पता होना :
[[ 1. 2. 3. 4.]
[ 2. 4. 6. 8.]
[ 0. 0. 0. 0.]
[ 0. 0. 0. 0.]]
क्या वेक्टरेटेड फॉर्म में कुशलता से ऊपर कोड लिखना संभव है (जहां अगला पुनरावृत्ति हमेशा पिछले पुनरावृत्ति तक पहुंचता है) या क्या मुझे for
लूप रखना है?