मेरे प्रोग्राम में मैं विभिन्न आकारों के विभिन्न numpy arrays के साथ काम कर रहा हूं। मुझे बाद में उपयोग के लिए उन्हें एक्सएमएल फाइलों में स्टोर करने की जरूरत है। मैंने उन्हें बाइनरी फाइलों में नहीं लिखा था, इसलिए मेरे पास एक ही स्थान (एक्सएमएल फाइल) में मेरा पूरा डेटा है और 200 फाइलों के माध्यम से बिखरा हुआ नहीं है।फ़ाइलों के रूप में numpy arrays को संग्रहीत और लोड करना
तो मैंने एक सरणी को स्ट्रिंग में बदलने के लिए numpy की array_str() विधि का उपयोग करने का प्रयास किया। जिसके परिणामस्वरूप एक्सएमएल इस तरह दिखता है:
-<Test date="2013-07-10-17:19">
<Neurons>5</Neurons>
<Errors>[7.7642140551985428e-06, 7.7639131137987232e-06]</Errors>
<Iterations>5000</Iterations>
<Weights1>[[ 0.99845902 -0.70780512 0.26981375 -0.6077122 0.09639695] [ 0.61856711 -0.74684913 0.20099992 0.99725171 -0.41826754] [ 0.79964397 0.56620812 -0.64055346 -0.50572793 -0.50100635]]</Weights1>
<Weights2>[[-0.1851452 -0.22036027] [ 0.19293429 -0.1374252 ] [-0.27638478 -0.38660974] [ 0.30441414 -0.01531598] [-0.02478953 0.01823584]]</Weights2>
</Test>
बाट मूल्यों मैं संग्रहीत करना चाहते हैं। अब समस्या यह है कि numpy की fromstring() विधि इन्हें पुनः लोड नहीं कर सकती है ... मुझे "ValueError: स्ट्रिंग आकार तत्व आकार का एक बहु होना चाहिए"
मैंने उन्हें "np.array_str (w1) "और उन्हें" np.fromstring (w_str1) "के साथ पढ़ने का प्रयास करें। स्पष्ट रूप से परिणाम केवल 1 डी सरणी है, भले ही यह काम करता है, इसलिए मुझे मैन्युअल रूप से आकार को पुनर्स्थापित करना होगा। उह, यह पहले से ही दर्द है क्योंकि मुझे इसे किसी भी तरह से स्टोर करना होगा।
इसे ठीक से करने का सबसे अच्छा तरीका क्या है? पसंदीदा रूप से वह जो हर छोटी चीज़ के लिए मैन्युअल हाउसकीपिंग के बिना मेरी सरणी के आकार और डेटाटाइप को भी बचाता है। np.savez_compressed('file.npz', newa=a, newb=b)
:
a = np.arange(10)
b = np.arange(10)
np.savez_compressed('file.npz', a=a, b=b)
तुम भी सरणी के नाम, जब बचत उदाहरण के लिए करने से बदल सकते हैं:
धन्यवाद यह बिल्कुल ठीक नहीं है जो मुझे दिमाग में था (यह अभी भी बाहरी फाइलों का निर्माण करता है), लेकिन यह समाधान कम से कम सरल है। मैं फाइल नामों के रूप में तारीखों का उपयोग करके एनपीजेड फ़ाइलों को अपने एक्सएमएल डेटा में जोड़ सकता हूं। – user2323596
कम से कम यहां आप केवल एक फ़ाइल में कई एरे स्टोर कर सकते हैं, और बाद में शब्द कुंजी के रूप में शब्द कुंजी का उपयोग करके किया जा सकता है, उदाहरण: 'np.savez_compressed ('all.npz', d2013_12_29 = a, d2013_12_30 = b , d2013_12_31 = c) ', आप यहां जितनी तारीखें चाहते हैं उतनी तिथियां शामिल कर सकते हैं ... –