2016-12-24 201 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未指定” –