将使用 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)工具的使用