Υπάρχει τρόπος να απορρίψετε έναν πίνακα NumPy σε ένα αρχείο CSV; Έχω έναν πίνακα 2D NumPy και πρέπει να τον απορρίψω σε μορφή αναγνώσιμη από τον άνθρωπο.
numpy.savetxt
αποθηκεύει έναν πίνακα σε ένα αρχείο κειμένου.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
Η tofile
είναι μια βολική συνάρτηση για να το κάνετε αυτό:
import numpy as np
a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
a.tofile('foo.csv',sep=',',format='%10.5f')
Η σελίδα man έχει μερικές χρήσιμες σημειώσεις:
Αυτή είναι μια συνάρτηση ευκολίας για τη γρήγορη αποθήκευση δεδομένων συστοιχιών. Οι πληροφορίες σχετικά με το endianness και την ακρίβεια χάνονται, οπότε αυτή η μέθοδος δεν είναι μια καλή επιλογή για αρχεία που προορίζονται για την αρχειοθέτηση δεδομένων ή τη μεταφορά δεδομένων μεταξύ μηχανών με διαφορετική endianness. Ορισμένα από αυτά τα προβλήματα μπορούν να να ξεπεραστούν με την έξοδο των δεδομένων ως αρχεία κειμένου, εις βάρος των ταχύτητα και το μέγεθος του αρχείου.
Σημείωση. Αυτή η συνάρτηση δεν παράγει αρχεία csv πολλαπλών γραμμών, αποθηκεύει τα πάντα σε μία γραμμή.
Αν θέλετε να αποθηκεύσετε τον πίνακα numpy (π.χ. your_array = np.array([[1,2],[3,4]])
) σε ένα κελί, μπορείτε να τον μετατρέψετε πρώτα με την your_array.tolist()
.
Στη συνέχεια, να το αποθηκεύσετε με τον κανονικό τρόπο σε ένα κελί, με delimiter=';'
και το κελί στο αρχείο csv θα μοιάζει ως εξής [[1, 2], [2, 4]]
Στη συνέχεια, μπορείτε να επαναφέρετε τον πίνακα σας ως εξής:
your_array = np.array(ast.literal_eval(cell_string))