2011-01-30 16 views
26

memoryview का पूरा विवरण here पाया जा सकता है:किसी स्मृतिदृश्य का उपयोग कब किया जाना चाहिए?

एक memoryview संदर्भ obj बनाएँ। obj बफर प्रोटोकॉल का समर्थन करना चाहिए। बफर प्रोटोकॉल का समर्थन करने वाली अंतर्निहित ऑब्जेक्ट्स में bytes और bytearray शामिल हैं।

एक memoryview एक तत्व है, जो परमाणु स्मृति इकाई उद्भव वस्तु obj द्वारा नियंत्रित किया जाता है की धारणा है। bytes और bytearray जैसे कई सरल प्रकारों के लिए, एक तत्व एक बाइट है, लेकिन अन्य प्रकार जैसे array.array में बड़े तत्व हो सकते हैं।

+0

मैं Google से यह पूछ रहा था, बस पाया [कुछ प्रासंगिक] (http://eli.thegreenplace.net/2011/11/28/less-copies-in-python-with-the-buffer-protocol- और-मेमोरीव्यू) – dcsordas

उत्तर

19

एक मेमोरीव्यू अनिवार्य रूप से पाइथन में (गणित के बिना) में एक सामान्यीकृत NumPy सरणी संरचना है। यह आपको पहली प्रतिलिपि के बिना डेटा-स्ट्रक्चर (पीआईएल छवियों, एसक्यूएललाइट डेटा-बेस, न्यूमपी एरे इत्यादि जैसी चीजों) के बीच मेमोरी साझा करने की अनुमति देता है। बड़े डेटा सेट के लिए यह बहुत महत्वपूर्ण है।

इसके साथ आप स्मृति फ़ाइल को बहुत बड़ी फ़ाइल में कर सकते हैं, उस फ़ाइल का एक टुकड़ा टुकड़ा कर सकते हैं और उस टुकड़े पर गणना कर सकते हैं (यदि आप NumPy का उपयोग कर रहे हैं तो सबसे आसान)।

2

प्रलेखन से, मैं समझ ताकि आप अपनी स्मृति को भरने के बिना डेटा की बड़ी मात्रा के साथ काम कर सकते हैं यह, "एक वस्तु को कॉपी किए बिना बफर प्रोटोकॉल का समर्थन करता है कि आंतरिक डेटा का उपयोग करने के लिए" प्रयोग किया जाता है। मुझे नहीं पता कि आप उदाहरण चाहते हैं, लेकिन मैं दुर्भाग्य से किसी के बारे में नहीं सोच सकता।

+6

धन्यवाद, लेकिन मैंने इसे दस्तावेज़ में भी पढ़ा, जो बहुत जानकारीपूर्ण नहीं था। –

संबंधित मुद्दे