小编ems*_*ems的帖子

如何将 numpy 字符串数组(带逗号)保存到 CSV?

tl;dr 答案:不要使用 numpy。使用csv.writer而不是numpy.savetxt.

我是 Python 和 NumPy 的新手。似乎将二维字符串数组(包含逗号)保存到 CSV 文件应该不那么困难,但我无法让它按照我想要的方式工作。

假设我有一个如下所示的数组(由列表列表组成):

[['text1, text2', 'text3'],
['text4', 'text5']]
Run Code Online (Sandbox Code Playgroud)

我想要一个在 Excel 中如下所示(或不带引号字符)的 CSV 文件(管道 = 单元格分隔符):

'text1, text2' | 'text3'
'text4'        | 'text5'
Run Code Online (Sandbox Code Playgroud)

我正在使用numpy.savetxt(filename, array, fmt="%s"),并得到以下 CSV 输出(带方括号):

['text1, text2','text3']
['text4','text5']
Run Code Online (Sandbox Code Playgroud)

在 Excel 中显示如下:

['text1  | text2' | 'text3']
['text4' | 'text5']
Run Code Online (Sandbox Code Playgroud)

我尝试使用 savetxt 分隔符参数,但输出没有变化。

我需要手动执行此操作吗?如果是这样,请告诉我是否有任何我应该注意的捷径。

最终,我需要将 CSV 导入 Postgresql 数据库。我并不完全清楚 CSV 格式需要什么才能按预期工作,但我假设如果它在 Excel 中看起来错误,它最终可能会在 Postgres 中变得混乱。Postgres 文档说:

每个记录中的值由 DELIMITER 字符分隔。如果该值包含分隔符、QUOTE 字符、NULL 字符串、回车符或换行符,则整个值将以 QUOTE 字符为前缀和后缀,并且在 …

python csv arrays postgresql numpy

4
推荐指数
1
解决办法
2万
查看次数

如何将属性类型更改为String(WEKA - CSV到ARFF)

我正在尝试使用WEKA库制作SMS SPAM分类器.我有一个带有"标签"和"文本"标题的CSV文件.当我使用下面的代码时,它会创建一个包含两个属性的ARFF文件:

@attribute label {ham,spam}
@attribute text {'Go until jurong point','Ok lar...', etc.}
Run Code Online (Sandbox Code Playgroud)

目前,似乎text属性被格式化为名义属性,每个消息的文本都是一个值.但是我需要text属性是一个String属性,而不是所有实例中所有文本的列表.将text属性作为String将允许我使用StringToWordVector过滤器来训练分类器.

// load CSV
CSVLoader loader = new CSVLoader();
loader.setSource(new File(args[0]));
Instances data = loader.getDataSet();

// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(data);
saver.setFile(new File(args[1]));
saver.setDestination(new File(args[1]));
saver.writeBatch();
Run Code Online (Sandbox Code Playgroud)

我知道我可以像这样创建一个String属性:

Attribute tmp = new Attribute("tmp", (FastVector) null);
Run Code Online (Sandbox Code Playgroud)

但我不知道如何替换当前属性,或者在读取CSV之前设置属性类型.

我尝试插入一个新的String属性并删除当前的名义属性,但这会删除所有的SMS文本.我也尝试使用renameAttributeValue,但这似乎不适用于更改属性类型.

编辑: 我怀疑这个NominalToString过滤器将完成这项工作,但我不知道如何使用它.

任何建议将不胜感激.谢谢!

java csv weka arff document-classification

1
推荐指数
1
解决办法
8104
查看次数

标签 统计

csv ×2

arff ×1

arrays ×1

document-classification ×1

java ×1

numpy ×1

postgresql ×1

python ×1

weka ×1