【发布时间】:2014-10-13 19:36:20
【问题描述】:
我对 python 和编程有点陌生。在我的代码中,我为每个音频文件开发了一个功能(这是一个由 39 个元素组成的一维数组)。我想将文件名、特征及其目标值 {0,1} 写入 CSV 文件以训练我的 SVM 分类器。我使用 CSV 编写器如下。
with open('train.csv', 'a') as csvfile:
albumwriter = csv.writer(csvfile, delimiter=' ')
albumwriter.writerow(['1.03 I Want To Hold Your Hand'] + Final_feature + [0] )
我想将大约 180 个音频文件的详细信息写入此 CSV 文件,并将其提供给 SVM 分类器。我用来读取文件的代码是:
with open('train.csv', 'rb') as csvfile:
albumreader = csv.reader(csvfile, delimiter=' ')
data = list()
for row in albumreader:
data.append(row[0:])
data = np.array(data)
我可以使用data[0][1] 访问第一行中的文件名,使用data[0][2] 访问功能,但它们都在<type 'numpy.string_'> 中。我想将该功能转换为浮点列表。主要问题似乎是分隔列表中元素的','。我尝试使用 .astype(np.float) 但徒劳无功。
谁能建议我一个将字符串从 CSV 文件转换回浮点数的好方法?非常感谢您的帮助,因为我完成这个项目的时间非常少。提前致谢。
编辑:根据评论,这就是我的 train.csv 的样子:
"1.01 I saw her standing there" "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]" 0
"1.02 I saw her" "[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40]" 0
"1.03 I want to hold your hand" "[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41]" 1
【问题讨论】:
-
我添加了numpy 标签,因为您显然正试图从
nympytype 转换。出于好奇,你为什么要使用 Numpy 来完成这样的任务? -
当你给定的代码不使用 Numpy 时,为什么你提到
numpy.string作为你的数据类型? -
哦,对不起.. 我错过了代码的最后一行。我编辑了它。希望清楚。
-
@SylvainLeroux 我不知道你用什么。即使我必须更改代码的结构并使用其他东西也没关系,但我的主要目的是写入和读取带有字符串的列表和浮动列表到 CSV 文件。
-
@Nikki_Champ 如果您能够提供输入数据的 small 示例(即:几行
train.csv)。