2016-12-24 199 views
2

我有這個數據幀將數據幀轉換爲numpy數組?

 Begin End Duration ID 
42 40680 40846 167  18 

,我想一個numpy的數組轉換形式如下:

array([40680 , 40860 ,167,18]) 

我使用轉換as_matrix功能和我後 重塑使用(1,4)但它不工作!它是讓我這種格式: [[40680 40846 167 18]]有什麼建議嗎?我需要將 轉換爲該格式,以便我可以應用'precision_recall_curve'函數。

+1

嘗試''array.ravel的(),而不是'reshape'。所以,如果數據框是'df':'df.values.ravel()'或者簡單地:'np.ravel(df)'。 – Divakar

+0

對不起,但即使這個解決方案不起作用,它讓我這樣一個數組:[40680 40846 167 18] –

+0

是不是你所期待的? – Divakar

回答

2

你有這樣的事情:

pd.DataFrame({'a':[1],'b':[2],'c':[3]}, index=[42]) 
Out[27]: 
    a b c 
42 1 2 3 

你想獲得一個單列爲NumPy的數組:

df.loc[42].values 
Out[30]: array([1, 2, 3]) 
+0

抱歉!但它不工作!這就是我得到的! [40680 40846 167 18],我已經應用了y_true = eval_seg.loc [42] .values!我確信輸入格式是一個數據幀,這是我打印(eval_seg)時所得到的

+0

@jaouaemna:對不起,但我不知道你現在在說什麼。也許如果你可以添加更多的詳細信息與完整的可執行代碼到你的問題.... –

+0

以及我有一個輸入數據幀!我想將它轉換爲numpy數組,就像我之前提到的格式。因爲我想將該數組用作函數「precision_recall_curve」中的輸入,以計算兩個數組之間的精度和查全率。所以,當我使用這個數組[40680 40846 167 18]函數得到我作爲錯誤:「ValueError:數據不是二進制和pos_label未指定」 –