पाइथन के लिए SQLite (sqlite3, atpy) और HDF5 (h5py, pyTables) के साथ इंटरफ़ेस करने के लिए कई विकल्प प्रतीत होते हैं - मुझे आश्चर्य है कि किसी को इनका उपयोग करने का अनुभव है या नहीं एक साथ numpy arrays या डेटा टेबल (संरचित/रिकॉर्ड सरणी) के साथ, और इनमें से कौन सा सबसे सहजता प्रत्येक डेटा प्रारूप (SQLite और HDF5) के लिए "वैज्ञानिक" मॉड्यूल (numpy, scipy) के साथ एकीकृत है।एसक्यूलाइट और एचडीएफ 5 प्रारूपों में numpy, scipy से निर्यात/आयात करने के लिए
उत्तर
इसमें से अधिकांश आपके उपयोग के मामले पर निर्भर करता है।
मैं एक बहुत अधिक परंपरागत रिलेशनल डेटाबेस से विभिन्न HDF5 आधारित विधियों के साथ काम कर अनुभव है, इसलिए मैं अजगर के लिए SQLite पुस्तकालयों पर बहुत ज्यादा टिप्पणी नहीं कर सकता ...
कम से कम जहाँ तक h5py
रूप बनाम pyTables
, वे दोनों numpy arrays के माध्यम से बहुत सहज पहुंच प्रदान करते हैं, लेकिन वे बहुत अलग उपयोग मामलों की ओर उन्मुख हैं।
आप n आयामी डेटा है कि आप जल्दी से एक मनमाना सूचकांक आधारित का टुकड़ा का उपयोग करना चाहते हैं, तो यह h5py
उपयोग करने के लिए और अधिक आसान है। यदि आपके पास डेटा है जो अधिक टेबल जैसा है, और आप इसे क्वेरी करना चाहते हैं, तो pyTables
एक बेहतर विकल्प है।
h5py
pyTables
की तुलना में एचडीएफ 5 पुस्तकालयों के आसपास अपेक्षाकृत "वेनिला" रैपर है। यह एक बहुत अच्छी बात है यदि आप नियमित रूप से किसी अन्य भाषा से अपनी एचडीएफ फ़ाइल तक पहुंचने जा रहे हैं (pyTables
कुछ अतिरिक्त मेटाडेटा जोड़ता है)। h5py
बहुत कर सकता है, लेकिन कुछ उपयोग मामलों के लिए (उदा। pyTables
करता है) आपको चीजों को बदलने में अधिक समय व्यतीत करने की आवश्यकता होगी।
pyTables
में वास्तव में अच्छी सुविधाएं हैं। हालांकि, यदि आपका डेटा किसी तालिका की तरह नहीं दिखता है, तो शायद यह सबसे अच्छा विकल्प नहीं है।
एक और ठोस उदाहरण देने के लिए, मैं डेटा के 3 और 4 आयामी सरणी काफी बड़े (जीबी के दस) के साथ बहुत काम करता हूं। वे फ्लोट्स, इन्ट्स, uint8s, आदि के समरूप सरणी हैं। मैं आमतौर पर पूरे डेटासेट के एक छोटे से सबसेट का उपयोग करना चाहता हूं। h5py
यह बहुत सरल बनाता है, और एक उचित हिस्सा आकार के ऑटो अनुमान लगाने का एक अच्छा काम करता है। एक मनमानी खंड या डिस्क से टुकड़ा पकड़ना एक साधारण memmapped फ़ाइल के मुकाबले बहुत तेज है। (मनमाने ढंग से जोर ... स्पष्ट रूप से, यदि आप एक संपूर्ण "एक्स" टुकड़ा पकड़ना चाहते हैं, तो एक सी-ऑर्डर किए गए memmapped सरणी को हरा करना असंभव है, क्योंकि "एक्स" स्लाइस में मौजूद सभी डेटा डिस्क पर आसन्न हैं।)
एक काउंटर उदाहरण के रूप में, मेरी पत्नी कई वर्षों में मिनट से दूसरे अंतराल पर नमूने वाले सेंसर की विस्तृत श्रृंखला से डेटा एकत्र करती है। उसे अपने डेटा पर मनमाने ढंग से पूछताछ (और अपेक्षाकृत सरल गणना) को स्टोर और चलाने की जरूरत है। pyTables
इस उपयोग के मामले को बहुत आसान और तेज़ बनाता है, और पारंपरिक संबंधपरक डेटाबेस पर अभी भी कुछ फायदे हैं। (विशेष रूप से डिस्क उपयोग और गति के संदर्भ में, जिसमें डेटा का एक बड़ा (इंडेक्स-आधारित) हिस्सा स्मृति में पढ़ा जा सकता है)
धन्यवाद - यह वास्तव में ऐसी जानकारी है जो मैं 'h5py' और 'pyTables'' के विपरीत खोज रहा था ... लेकिन फिर यह आवश्यक नहीं है जो NumPy के साथ जाता है लेकिन जो अच्छी तरह से चला जाता है NumPy सरणी में वास्तविक डेटा के साथ। मैं 'SQLite' भाग को एक अलग प्रश्न के रूप में पोस्ट करूंगा। – hatmatrix
@ जोकिंगटन: साइड नोट: मुझे यकीन नहीं है कि "सी-ऑर्डर किए गए मेमैप्ड सरणी को हरा करना असंभव है": memcpy() के साथ डेटा कॉपी करना संकुचित डेटा को स्थानांतरित करने और प्रोसेसर में आने पर इसे कम करने से धीमा हो सकता है (http: //blosc.pytables.org/trac)।शुद्ध प्रभाव यह है कि संपीड़ित सरणी डेटा संसाधित असंपीड़ित सरणी डेटा संसाधित करने से तेज़ हो सकता है। – EOL
- 1. numpy और scipy
- 2. NumPy/SciPy
- 3. scipy/numpy
- 4. numpy/scipy
- 5. numpy/scipy
- 6. scipy/numpy
- 7. numpy/scipy
- 8. numpy, scipy, matplotlib और pylab
- 9. आर और एचडीएफ 5 समस्याएं
- 10. रैखिक बीजगणित के लिए scipy और numpy के लिए वैकल्पिक?
- 11. Numpy में Scipy मोड समारोह के लिए वैकल्पिक?
- 12. SciPy या NumPy
- 13. numpy/scipy eigendecompositions
- 14. एचडीएफ 5 स्टोरेज ओवरहेड
- 15. एक एचडीएफ 5 डेटासेट
- 16. एचडीएफ 5 उदाहरण कोड
- 17. एचडीएफ 5 फ़ाइल और पीईटेबल्स फ़ाइल के बीच अंतर
- 18. Scipy/Numpy FFT फ्रीक्वेंसी विश्लेषण
- 19. एचडीएफ 5 फाइल से जानकारी हटाने
- 20. एचडीएफ 5 फ़ाइल से डेटा को हटाने
- 21. चंकित एचडीएफ 5 डेटासेट और स्लैबसाइज
- 22. लोडिंग मैटलैब स्पैर मैट्रिक्स -व 7.3 (एचडीएफ 5) के साथ पाइथन में सहेजा गया और
- 23. क्या वास्तविक समय माप के लिए एचडीएफ 5 उपयुक्त है
- 24. पाइथन में एन्कोवा Scipy/Numpy आँकड़े
- 25. ट्रेसिंग अजगर चेतावनी/त्रुटियों numpy में एक लाइन नंबर करने के लिए और SciPy
- 26. पाइथन scipy/numpy में multinomial pmf
- 27. मैटलैब में एफएफटी और numpy/scipy अलग-अलग परिणाम
- 28. एचडीएफ 5 सी कोड पीढ़ी
- 29. Google प्रोटोकॉल बफर, एचडीएफ 5, न्यूपी तुलना (डेटा स्थानांतरित करना)
- 30. एचडीएफ 5 दर्शक/संपादक लिनक्स
क्या आप SQLite तालिकाओं में numpy डेटा सहेजने के बारे में पूछ रहे हैं? –
हां, इसका हिस्सा ... – hatmatrix