Bir NumPy dizisini csv dosyasına dökme

Bir NumPy dizisini CSV dosyasına dökmenin bir yolu var mı? Bir 2D NumPy dizim var ve bunu insan tarafından okunabilir formatta dökmem gerekiyor.

Çözüm

numpy.savetxt bir diziyi bir metin dosyasına kaydeder.

import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
Yorumlar (11)

tofile bunu yapmak için uygun bir işlevdir:

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 sayfasında bazı faydalı notlar bulunmaktadır:

Bu, dizi verilerinin hızlı depolanması için kolaylık sağlayan bir işlevdir. Endianness ve hassasiyet bilgileri kaybolur, bu nedenle bu yöntem veri arşivleme veya veri taşıma amaçlı dosyalar için iyi bir seçim farklı endianlığa sahip makineler arasında. Bu sorunlardan bazıları şunlar olabilir verilerin metin dosyaları olarak çıktısının alınmasıyla üstesinden gelinebilir. hız ve dosya boyutu.

Not. Bu fonksiyon çok satırlı csv dosyaları üretmez, her şeyi tek satıra kaydeder.

Yorumlar (4)

Numpy dizinizi (örneğin your_array = np.array([[1,2],[3,4]])) tek bir hücreye kaydetmek istiyorsanız, önce your_array.tolist() ile dönüştürebilirsiniz.

Ardından normal şekilde tek bir hücreye delimiter=';' ile kaydedin ve csv dosyasındaki hücre şu şekilde görünecektir [[1, 2], [2, 4]]

Daha sonra dizinizi bu şekilde geri yükleyebilirsiniz: your_array = np.array(ast.literal_eval(cell_string))

Yorumlar (1)