Nel mio programma sto lavorando con vari array numpy di varie dimensioni. Ho bisogno di memorizzarli in file XML per un uso successivo. Non li ho scritti su file binari, quindi ho tutti i miei dati in un posto (il file XML) e non sparsi in 200 file.Archiviazione e caricamento di array numpy come file
Così ho provato a usare il metodo array_str() di numpy per trasformare un array in una stringa. L'XML risultante è simile al seguente:
-<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>
I pesi sono i valori che voglio conservare. Ora il problema è che fromstring di NumPy() metodo non può ricaricare questi a quanto pare ... ottengo "ValueError: formato stringa deve essere un multiplo di dimensioni dell'elemento"
le ho scritte con "np.array_str (W1) "e prova a leggerli con" np.fromstring (w_str1) ". Apparentemente il risultato è solo un array 1D anche se funziona, quindi devo ripristinare la forma manualmente. Ugh, questo è già un dolore dato che dovrò anche memorizzarlo in qualche modo.
Qual è il modo migliore per farlo correttamente? Preferibilmente uno che salva anche la forma e il tipo di dati del mio array senza la manutenzione manuale per ogni piccola cosa.
Grazie non è esattamente quello che avevo in mente (questo crea ancora tonnellate di file esterni), ma questa soluzione è estremamente semplice almeno. Posso associare file NPZ ai miei dati XML utilizzando le date come nomi di file. – user2323596
Almeno qui è possibile memorizzare molti array in un solo file e l'accesso può essere fatto in seguito utilizzando i tasti del dizionario come date, ad esempio: 'np.savez_compressed ('all.npz', d2013_12_29 = a, d2013_12_30 = b , d2013_12_31 = c) ', puoi includere tutte le date che desideri qui ... –