मेरे पास बड़ी टेक्स्ट फाइलों (1 गीगा तक) की एक श्रृंखला है जो एक प्रयोग से उत्पादन कर रहे हैं जिसे पायथन में विश्लेषण करने की आवश्यकता है। ,वृद्धिशील रूप से एक numpy सरणी बनाने और स्मृति उपयोग मापने
- पंक्तियों की संख्या लोड हो रहा है की शुरुआत में अज्ञात है के रूप में, कैसे कर सकते हैं एक बहुत बड़ी numpy सरणी सबसे अधिक कुशलता से बनाया जा: वे सबसे अच्छा एक 2D numpy सरणी, जो पहला सवाल प्रस्तुत करता है में लोड किया जाएगा पंक्ति से पंक्ति?
बस सरणी में पंक्ति जोड़ना स्मृति शर्तों में अक्षम होगा, क्योंकि दो बड़े सरणी क्षणिक रूप से सह-अस्तित्व में रहेंगे। यदि आप numpy.append
का उपयोग करते हैं तो वही समस्या उत्पन्न होगी। stack
फ़ंक्शंस वादा कर रहे हैं, लेकिन आदर्श रूप में मैं जगह में सरणी विकसित करना चाहता हूं।
यह दूसरा सवाल की ओर जाता है:
- एक अजगर प्रोग्राम है जो भारी NumPy सरणी का उपयोग करता है की स्मृति के उपयोग का निरीक्षण करने के लिए सबसे अच्छा तरीका क्या है? heapy और pympler - -
ऊपर समस्या का अध्ययन करने के लिए, मैं हमेशा की तरह स्मृति उपकरणों की रूपरेखा का उपयोग किया है, लेकिन केवल (80 बाइट्स) बाहरी सरणी वस्तुओं के आकार और नहीं डेटा वे युक्त कर रहे हैं हो रही है। पाइथन प्रक्रिया का कितना मेमोरी उपयोग कर रहा है, इसकी कच्ची माप से सहायक, मैं बढ़ने के साथ सरणी के "पूर्ण" आकार को कैसे प्राप्त कर सकता हूं?
स्थानीय विवरण: ओएसएक्स 10.6, पायथन 2.6, लेकिन सामान्य समाधान का स्वागत है।
धन्यवाद सब कुछ। फ़ाइल के आकार को देखते हुए, मैं लाइनों की गिनती करने के लिए प्रारंभिक पास करने के लिए अनिच्छुक था, लेकिन यह स्मृति समस्या को हल करने का सबसे आसान और सबसे प्रभावी तरीका प्रतीत होता है। –
मेरे पास एक सहकर्मी हाल ही में एक समान प्रश्न पूछता था, और मैं एक और संभावना के साथ आया जो आपको प्रारंभिक पास से बचा सकता है। यदि आप फ़ाइल में "तत्व" के अनुमानित आकार को जानते हैं, तो आप इसे फ़ाइल आकार में विभाजित कर सकते हैं। सुरक्षा के लिए कुछ पैडिंग जोड़ें, और फिर आप पूरी मेमोरी को लिख सकते हैं। अतिरिक्त, अनियमित होने के लिए, आप केवल डेटा वाले तत्वों के दृश्य का उपयोग कर सकते हैं। आपको यह सुनिश्चित करना होगा कि आप आगे नहीं बढ़ें। यह सही नहीं है, लेकिन यदि आपकी फ़ाइल पढ़ती है धीमी है, और आपका डेटा लगातार रखता है, तो यह काम कर सकता है। – AFoglia