के लिए डिस्क सरणी पर बड़ा मेरे पास एक स्पैस सरणी है जो मेमोरी (2000x2500000, फ्लोट) में प्रभावी ढंग से संभालने के लिए बहुत बड़ी प्रतीत होती है। मैं इसे एक स्पैस lil_array (scipy) में बना सकता हूं, लेकिन अगर मैं एक कॉलम या पंक्ति संपीड़ित स्पैस सरणी (A.tocsc(), A.tocsr()) आउटपुट करने का प्रयास करता हूं, तो मेरी मशीन मेमोरी से बाहर हो जाती है (और इसके बीच भी एक गंभीर मेल नहीं है टेक्स्ट फ़ाइल 4.4 जी और पिकेलड लिल सरणी 12 जी में डेटा - यह डिस्क प्रारूप होना अच्छा होगा जो कच्चे डेटा आकार को अधिक निकटता से अनुमानित करता है)।numpy
मैं शायद भविष्य में भी बड़े सरणी का संचालन कर रहा हूं।
प्रश्न: डिस्क सरणी पर बड़े पैमाने पर संभालने का सबसे अच्छा तरीका क्या है कि मैं पारदर्शी तरीके से नियमित संख्यात्मक कार्यों का उपयोग कर सकता हूं। उदाहरण के लिए, पंक्तियों और स्तंभों, वेक्टर उत्पादों, अधिकतम, मिनट, टुकड़ा आदि के साथ रकम?
क्या पैटबेल जाने का रास्ता है? क्या एक अच्छी (तेज़) एसक्यूएल-न्यूपी मिडलवेयर परत है? डिस्क सरणी पर एक रहस्य numpy में बनाया गया?
अतीत में (थोड़ा छोटा) सरणी में मैंने हमेशा डिस्क पर लंबे समय तक गणना किए गए परिणामों को पिकेल-कैश किया है। यह तब काम करता है जब सरणी < 4 जी या तो समाप्त हो जाती है लेकिन अब अधिक योग्य नहीं है।
जब आपने अपनी सरणी उठाई, तो क्या आपने बाइनरी प्रोटोकॉल का उपयोग करना सुनिश्चित किया? यदि आप डिफ़ॉल्ट टेक्स्ट प्रोटोकॉल का उपयोग कर रहे हैं, तो यह विशाल फ़ाइल आकार का कारण हो सकता है। – DaveP