2016-04-11 59 views
-4

對於下面的代碼,我想知道如何獲得datascikit機器學習操作。 由此我的意思是撥打數據沒有,就像print(data)顯示數據。我怎樣才能得到嵌套的Python數據返回

x = np.random.uniform(0,9,size = 100) 
y = np.random.uniform(0,9, size = 100) 

c = len(x) 
v = len(y) 

for a in range(c): 
    for b in range(v): 
     data = [x[a],y[b]] 
+0

目前還不清楚,你的代碼想要達到什麼目的。你的循環是不必要的,因爲'data'將是兩個元素的列表(分別是'x'和'y'的最後一個元素)。你在尋找類似於'data = list(zip(x,y))'(甚至是'data = list(itertools.product(x,y))'的東西,例如'((a,b)爲b在y)')而不是? – stephan

+0

我認爲OP不知道如何將這些數據放入他的'scikit'設置中。所以請與我們分享更多。接下來的操作是什麼,您希望提供數據的'scikit'函數的簽名是什麼? – roadrunner66

+0

我會將x和y返回到2D模型中。 ex x = [1,2,3]和y = [2,3,4]併合併成數據= [[1,2],[2,3],[3,4]]。在我的代碼中,我想將隨機生成器中的x和y合併到數據中,並訪問它。接下來我會爲Kmeans嘗試它。這是我的下一個代碼k均值= k均值(n_clusters = 1) kmeans.fit() 重心= kmeans.cluster_centers_ 標籤= kmeans.labels_ 打印(重心) 打印(標籤) –

回答

0

不是在for循環中迭代,而是使用numpy的內置連接方法。短切爲您的問題將被使用np.c_

>>> x = np.random.uniform(0,9,size = 10) 
>>> y = np.random.uniform(0,9, size = 10) 
>>> data = np.c_[x, y] 
>>> print(data) 
[[ 4.17625287 0.65042586] 
[ 0.86363075 5.76803241] 
[ 5.60804861 4.53155782] 
[ 5.09218028 2.21632802] 
[ 6.78485295 2.22956468] 
[ 4.02404425 0.34639777] 
[ 6.40337929 6.98969517] 
[ 3.79826214 1.29557794] 
[ 5.75174741 6.31052599] 
[ 0.15683548 3.71585267]] 

其中串接xyN尺寸1- dimencional矢量)轉換成Nx2陣列。

+0

好的,謝謝,我會嘗試一下 –