Apakah ada cara untuk membuang array NumPy ke file CSV? Saya memiliki array NumPy 2D dan perlu membuangnya dalam format yang dapat dibaca manusia.
545
numpy.savetxt
menyimpan array ke file teks.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
numpy.array
string. Bisakah Anda meresepkan metode untuk menyimpan sebagai csv untuknumpy.array
objek yang berisi string?fmt='%s'
Anda bisa menggunakannya
pandas
. Memang diperlukan beberapa memori tambahan sehingga tidak selalu memungkinkan, tetapi sangat cepat dan mudah digunakan.jika Anda tidak ingin tajuk atau indeks, gunakan
to_csv("/path/to/file.csv", header=None, index=None)
sumber
df.to_csv("file_path.csv", header=None)
header=None, index=None
menghapus baris header dan kolom indeks.comments
argumen kata kunci''
, yang#
akan ditekan.tofile
adalah fungsi yang mudah untuk melakukan ini:Halaman manual memiliki beberapa catatan berguna:
Catatan. Fungsi ini tidak menghasilkan file csv multi-line, ia menyimpan semuanya menjadi satu baris.
sumber
Menulis array rekaman sebagai file CSV dengan header membutuhkan sedikit lebih banyak pekerjaan.
Contoh ini membaca file CSV dengan header di baris pertama, lalu menulis file yang sama.
Perhatikan bahwa contoh ini tidak mempertimbangkan string dengan koma. Untuk mempertimbangkan penawaran data non-numerik, gunakan
csv
paket:sumber
Seperti yang sudah dibahas, cara terbaik untuk membuang array ke file CSV adalah dengan menggunakan
.savetxt(...)
metode. Namun, ada beberapa hal yang harus kita ketahui untuk melakukannya dengan benar.Misalnya, jika Anda memiliki array numpy dengan
dtype = np.int32
asdan ingin menyimpan menggunakan
savetxt
sebagaiIni akan menyimpan data dalam format eksponensial titik mengambang sebagai
Anda harus mengubah pemformatan dengan menggunakan parameter yang disebut
fmt
sebagaiuntuk menyimpan data dalam format aslinya
Menyimpan Data dalam format gz Terkompresi
Juga,
savetxt
dapat digunakan untuk menyimpan data dalam.gz
format terkompresi yang mungkin berguna saat mentransfer data melalui jaringan.Kami hanya perlu mengubah ekstensi file
.gz
dan numpy akan mengurus semuanya secara otomatisSemoga ini bisa membantu
sumber
fmt="%d"
yang saya cari. Terima kasih!Saya percaya Anda juga dapat melakukan ini dengan cukup sederhana sebagai berikut:
mis. # 1:
mis. # 2:
sumber
jika Anda ingin menulis di kolom:
Di sini 'a' adalah nama array numpy dan 'file' adalah variabel untuk ditulis dalam file.
Jika Anda ingin menulis berturut-turut:
sumber
Jika Anda ingin menyimpan array numpy Anda (mis.
your_array = np.array([[1,2],[3,4]])
) Ke satu sel, Anda dapat mengonversinya terlebih dahuluyour_array.tolist()
.Kemudian simpan dengan cara normal ke satu sel, dengan
delimiter=';'
dan sel dalam file csv akan terlihat seperti ini[[1, 2], [2, 4]]
Maka Anda dapat mengembalikan array Anda seperti ini:
your_array = np.array(ast.literal_eval(cell_string))
sumber
Anda juga dapat melakukannya dengan python murni tanpa menggunakan modul apa pun.
sumber
Dalam Python kita menggunakan modul csv.writer () untuk menulis data ke file csv. Modul ini mirip dengan modul csv.reader ().
Pembatas adalah string yang digunakan untuk memisahkan bidang. Nilai standarnya adalah koma (,).
sumber