我正在用 python 做机器学习课的作业。我昨天才开始学习Python,所以我不知道Python中使用的实践。
我的部分任务是从 csv(二维数组)加载数据,让我们调用它arr_2d并对其进行标准化。
我在网上找到了sklearn解决numpy方案,但他们期望二维数组作为输入。
加载后我的方法arr_2d是将它们解析为对象数组(data: [HealthRecord])。
我的解决方案是类似于此的代码(注意:有点伪代码)
result = [] # 2D array of property values
for key in ['age','height','weight',...]:
tmp = list(map(lambda item: getattr(key, item), data))
result.append(tmp)
结果现在包含3 * data.length项目,我将使用它sklearn来规范化数组中的单行result,然后将其旋转回来并解析规范化为HealthRecord.
我认为这过于复杂,我希望看到一个选项可以以更简单的方式做到这一点,例如发送[HealthRecord]到sklearn.normalize
下面的代码显示了我的(简化的)加载和解析:
class Person:
age: int
height: int
weight: int
def arr_2_obj(data: [[]]) -> Person:
person = Person()
person.age = data[0]
person.height = data[1]
person.weight = data[2]
return person
# age (days), height (cm), weight (kg)
input = [
[60*365, 125, 65],
[30*365, 195, 125],
[13*365, 116, 53],
[16*365, 164, 84],
[12*365, 125, 96],
[10*365, 90, 46],
]
parsed = []
for row in input:
parsed.append(arr_2_obj(row))
注意:Person类是HealthRecord
感谢您提供任何意见或见解。
编辑:拼写错误 sci-learn -> sklearn
慕尼黑8549860
相关分类