【发布时间】:2017-09-03 13:58:46
【问题描述】:
我有一个数据文件,其中前 4 个 csv 是浮点数,最后一个值 是一个字符串,表示该行的标签
.5, .3, .2, .1, FAA
.2., .3, .5., .2, FXX
.5., .3, .2 , .9, FXX
.3, .3, .9, .3, FCA
我想将文件加载到一个 numpy 数组中,该数组通过 类,所以输出会是这样的:
FAA: [[.5, .3, .2, .1]]
FXX: [[.2., .3, .5., .2],
[.5., .3, .2 , .9]]
FCA: [.3, .3, .9, .3]
这与此非常相似,但我无法在我自己的代码中使用它: Best way to separate data into 3 classes
此代码有效,但我不知道如何不在每个数据点内添加标签:
import numpy as np
data = np.genfromtxt('data.txt', delimiter=',', dtype=None, names=('length', 'width', 'distance', 'strength', 'label'))
separated = {}
for i in range(len(data)):
vector = data[i]
if (vector[-1] not in separated):
separated[vector[-1]] = []
separated[vector[-1]].append(vector)
for i in range(len(separated)):
print separated
print '\n'
一旦我得到我想要的方式,我将从那里计算均值和协方差矩阵。
编辑:当我从链接页面运行代码时,出现以下错误:
filtered = [map(float, item[:4]) for item in data if item[4] == 'Iris-virginica']
IndexError: invalid index
索引无效怎么办?
【问题讨论】:
-
请不要发布到外部代码存储库,也不要询问有关外部发布代码的问题。
标签: python numpy dictionary file-io