2016-12-02 75 views
-3

我需要創建一個合成數據集,因爲我必須修復我的大學論文的聚類算法,所以我需要使用一個小數據集來測試算法。 我設法使用sklearn make_classification創建它,但程序需要輸入一個包含數據集特徵的csv文件。 有誰知道我該如何設法直接在csv中創建一個合成數據集,或者將使用sklearn創建的創建爲一個csv文件?將使用sklearn創建的合成數據集導出到csv

+0

使用sklearn.model_selection.train_test_split – Backtrack

+0

我看到的文檔,但我不明白我怎麼可以用它爲我的目的 –

+1

如果合成數據集是一個numpy的數組,你可以使用'numpy.savetxt'來將其導出到一個csv文件。 – Goyo

回答

2

您可以使用numpy.savetxt將numpy數組導出到csv文件。

本示例使用BytesIO實例作爲輸出,您將使用文件名來代替。

In [1]: import io 

In [2]: import numpy as np 

In [3]: x = np.random.randn(5, 2) 

In [4]: x 
Out[4]: 
array([[-0.13114465, -0.72491874], 
     [-0.08375738, -1.23769691], 
     [-0.5583027 , -0.24086865], 
     [ 0.04590227, -0.6582806 ], 
     [-0.21433652, -0.78924272]]) 

In [5]: buf = io.BytesIO() 

In [6]: np.savetxt(buf, x, delimiter=',') 

In [7]: print(buf.getvalue().decode()) 
-1.311446488105691699e-01,-7.249187409818331762e-01 
-8.375738326459475358e-02,-1.237696910731503452e+00 
-5.583026953882282983e-01,-2.408686450946319058e-01 
4.590226685041418758e-02,-6.582805971999975414e-01 
-2.143365241670896482e-01,-7.892427231682124233e-01 
+0

謝謝,這工作,但結果它是一個csv文件在每行中的數組值,用逗號分隔,有什麼辦法可以用逗號分隔的值在csv文件中的不同列中? –

+1

@IririoSalatino不知道你的意思。在我的代碼中,我有一個有兩列的數組,所以導出的csv有兩列。這不是每行中的值,而是每行中的兩個值。如果這不是你想要的,那麼在你的問題中加一個[mcve]。 – Goyo