将使用 sklearn 创建的合成数据集导出到 csv

Posted

技术标签:

【中文标题】将使用 sklearn 创建的合成数据集导出到 csv【英文标题】:Export synthetic dataset created with sklearn to csv 【发布时间】:2017-04-17 04:04:09 【问题描述】:

我需要创建一个合成数据集,因为我必须为我的大学论文修复一个聚类算法,所以我需要它来用一个小数据集测试算法。 我设法用 sklearn make_classification 创建了它,但程序输入一个包含数据集特征的 csv 文件。 有谁知道我如何直接在 csv 中创建合成数据集,或者将使用 sklearn 创建的数据集导出到 csv 文件中?

【问题讨论】:

使用 sklearn.model_selection.train_test_split 我看过文档,但我不明白如何将其用于我的目的 如果您的合成数据集是一个 numpy 数组,您可以使用 numpy.savetxt 将其导出到 csv 文件。 【参考方案1】:

您可以使用 numpy.savetxt 将 numpy 数组导出到 csv 文件。

此示例使用BytesIO 实例作为输出,您可以使用文件名。

In [1]: import io

In [2]: import numpy as np

In [3]: x = np.random.randn(5, 2)

In [4]: x
Out[4]:
array([[-0.13114465, -0.72491874],
       [-0.08375738, -1.23769691],
       [-0.5583027 , -0.24086865],
       [ 0.04590227, -0.6582806 ],
       [-0.21433652, -0.78924272]])

In [5]: buf = io.BytesIO()

In [6]: np.savetxt(buf, x, delimiter=',')

In [7]: print(buf.getvalue().decode())
-1.311446488105691699e-01,-7.249187409818331762e-01
-8.375738326459475358e-02,-1.237696910731503452e+00
-5.583026953882282983e-01,-2.408686450946319058e-01
4.590226685041418758e-02,-6.582805971999975414e-01
-2.143365241670896482e-01,-7.892427231682124233e-01

【讨论】:

谢谢,这行得通,但结果是一个csv文件,每行都有一个数组值,用逗号分隔,有没有办法将用逗号分隔的值放入不同的列中csv 文件? @Ilariosalatino 不明白你的意思。在我的代码中,我有一个包含两列的数组,因此导出的 csv 有两列。这不是每行中的一个值,而是每行中的两个值。如果这不是您想要的,请在您的问题中添加 minimal reproducible example。

以上是关于将使用 sklearn 创建的合成数据集导出到 csv的主要内容,如果未能解决你的问题,请参考以下文章

将 sklearn 随机森林 Python 模型导出到 Android

Keil stm32,使用汇编,分散文件和c。如何将c代码入口点导出到程序集?

ArcGIS微课1000例0058:波段合成(CompositeBands)工具的使用

ArcGIS微课1000例0058:波段合成(CompositeBands)工具的使用

将结算数据导出到 BigQuery 不起作用

sklearn乳腺癌数据集数据含义