मैं लूप में एक आयामी numpy arrays की एक सूची उत्पन्न करता हूं और बाद में इस सूची को 2 डी numpy सरणी में परिवर्तित करता हूं। अगर मैं समय से पहले वस्तुओं की संख्या जानता था, तो मैं एक 2 डी numpy सरणी preallocated होगा, लेकिन मैं नहीं, इसलिए मैं सब कुछ एक सूची में डाल दिया।numpy arrays की सूची से एक numpy सरणी बनाने के लिए पाइथोनिक तरीका
नकली अप के नीचे है:
>>> list_of_arrays = map(lambda x: x*ones(2), range(5))
>>> list_of_arrays
[array([ 0., 0.]), array([ 1., 1.]), array([ 2., 2.]), array([ 3., 3.]), array([ 4., 4.])]
>>> arr = array(list_of_arrays)
>>> arr
array([[ 0., 0.],
[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.]])
मेरा प्रश्न यह है: (
वहाँ एक बेहतर तरीका (performancewise) अनुक्रमिक संख्यात्मक डेटा इकट्ठा करने का कार्य के बारे में जाना है में मेरी केस numpy arrays) उन्हें एक सूची में डालने और फिर एक numpy.array बनाने से बाहर (मैं एक नया obj बना रहा हूँ और डेटा की प्रतिलिपि बना रहा हूँ)? क्या एक अच्छी तरह से परीक्षण मॉड्यूल में उपलब्ध एक "विस्तार योग्य" मैट्रिक्स डेटा संरचना है?
मेरी 2d मैट्रिक्स का एक विशिष्ट आकार 100x10 के बीच हो सकता है और 5000x10 तैरता
संपादित करें: इस उदाहरण में मैं नक्शा उपयोग कर रहा हूँ, लेकिन मेरी वास्तविक आवेदन में मैं एक पाश
के लिए
@Alok --- विचारशील जवाब के लिए धन्यवाद । ~ Unubuntu से उत्तर में समय 5% दक्षता की चिंता दिखाते हैं। यह लगभग निश्चित रूप से एक गलती है जब तक आप उस बिंदु तक नहीं पहुंच जाते कि आपके पास बिल्कुल 5% होना चाहिए। – telliott99