将数据框转换为 numpy 数组? [复制]
Posted
技术标签:
【中文标题】将数据框转换为 numpy 数组? [复制]【英文标题】:Convert a dataframe to numpy array? [duplicate] 【发布时间】:2017-05-09 18:41:52 【问题描述】:我有这个数据框
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”函数。
【问题讨论】:
尝试array.ravel()
而不是reshape
。因此,如果数据框是 df
:df.values.ravel()
或简单地说:np.ravel(df)
。
抱歉,即使这个解决方案也不起作用,它给我一个这样的数组:[40680 40846 167 18]
这不是你所期待的吗?
没有。我希望它是这样的:array([40680 , 40860 ,167,18])
@jaouaemna,您似乎对print(array)
命令的结果感到困惑,默认情况下该命令不显示昏迷 - 尝试@Divakar 的解决方案:np.ravel(df)
在 iPython 或 Jupiter 中
【参考方案1】:
你有这样的东西:
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])
【讨论】:
对不起!但它不工作!这就是我得到的! [40680 40846 167 18] 我已经申请了 y_true = eval_seg.loc[42].values!我确信输入格式是一个数据框,这是我打印 (eval_seg)以上是关于将数据框转换为 numpy 数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章