2012-12-20 13 views
5

शायद यह एक आसान सवाल है, लेकिन क्या सरणी में तत्वों को डुप्लिकेट करने का कोई तेज़ तरीका है? यह 3 डी के लिए इस तरह की तरह काम करना चाहिए:numpy डुप्लिकेट तत्व

1 2 3 
4 5 6 
7 8 9 

1 1 2 2 3 3 
1 1 2 2 3 3 
4 4 5 5 6 6 
4 4 5 5 6 6 
7 7 8 8 9 9 
7 7 8 8 9 9 

मैं 3 के साथ इसे करने की कोशिश के लिए-छोरों नेस्ट, लेकिन यह वास्तव में धीमी थी।

उत्तर

6
>>> a = np.array([[1, 2, 3], 
        [4, 5, 6], 
        [7, 8, 9]]) 
>>> np.repeat(np.repeat(a, 2, 0), 2, 1) 

array([[1, 1, 2, 2, 3, 3], 
     [1, 1, 2, 2, 3, 3], 
     [4, 4, 5, 5, 6, 6], 
     [4, 4, 5, 5, 6, 6], 
     [7, 7, 8, 8, 9, 9], 
     [7, 7, 8, 8, 9, 9]]) 
+0

ग्रेट सॉल्यूशन! लेकिन मुझे पता चला कि यह फ़ंक्शन फ्लैट 64 से फ्लोट 32 में डाइटपे को बदल देता है। क्या मैं इससे बच सकता हूं? – Christian

+1

@ क्रिस्टियन - यह मेरे लिए dtype नहीं बदलता है। – eumiro

+0

क्षमा करें, मेरी गलती - मैंने एक और फ़ंक्शन का उपयोग किया जो dtype को नष्ट कर दिया। धन्यवाद! :) – Christian