将数据框转换为 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。因此,如果数据框是 dfdf.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) 的类型时得到的 @jaouaemna:抱歉,我不知道你现在在说什么。也许如果您可以使用完整的可执行代码向您的问题添加更多细节...... 我有一个数据框作为输入!我想将它转换为我之前提到的格式的 numpy 数组。因为我想将该数组用作函数“precision_recall_curve”中的输入,该函数计算两个数组之间的精度和召回率。因此,当我使用此数组 [40680 40846 167 18] 时,该函数将我视为错误:“ValueError: Data is not binary and pos_label is not specified” @jaouaemna:我明白了。这是一个不同的问题——您需要阅读scikit-learn.org/stable/modules/generated/… 的文档并注意它需要“二进制”输入,而不是您使用的任何数字。 哦,我明白了。我没注意那个!我将看看如何以不同的方式计算精度和召回率,或者我可以直接在 python 中实现公式。

以上是关于将数据框转换为 numpy 数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将两个numpy数组转换为数据框

将熊猫数据框转换为numpy数组[重复]

按标签分隔数据框(将数据框转换为 numpy 数组)

将数据框转换为 Numpy 数组 [重复]

有没有办法将 numpy 数组转换为数据框,然后再转换回 numpy 数组并仍保持原始形状?

如何将包装为字符串的向量转换为熊猫数据框中的numpy数组?