python - 尝试规范化训练数据时取回一个元组
问题描述
我有一个训练和测试集。我需要对它们进行规范化,但我似乎无法遍历它们,我得到了这个错误TypeError: list indices must be integers or slices, not tuple
。我将给出该系列的一小部分,以便您了解它的结构。我试过了enumerate
,range
但我得到了同样的错误。
training_data = [
[3.6216, 8.6661, -2.8073, -0.44699, 0],
[4.5459, 8.1674, -2.4586, -1.4621, 0],
[3.866, -2.6383, 1.9242, 0.10645, 0],
[3.4566, 9.5228, -4.0112, -3.5944, 0],
[0.32924, -4.4552, 4.5718, -0.9888, 0],
[4.3684, 9.6718, -3.9606, -3.1625, 0],
[3.5912, 3.0129, 0.72888, 0.56421, 0],
[2.0922, -6.81, 8.4636, -0.60216, 0],
]
代码:
def minMaxNrom(training_data, testing_data):
for i in enumerate(training_data):
for j in enumerate(training_data):
new_data = training_data[i][j] - min(j) / max(j) - min(j)
for i in enumerate(testing_data):
for j in enumerate(testing_data[i]):
new_testing_data = testing_data[i][j] - min(j) / max(j) - min(j)
return (new_data, new_testing_data)
解决方案
for i in enumertae(list)
生成一个tuple
,即(index:value)
你要找的是索引,所以使用for i,v in enumerate(list)
def minMaxNrom(training_data, testing_data):
for i,v1 in enumerate(training_data):
for j,v2 in enumerate(v1):
new_data = training_data[i][j] - (min(v1) / max(v1)) - min(v1)
for i,v1 in enumerate(testing_data):
for j,v2 in enumerate(v1):
new_testing_data = testing_data[i][j] - (min(v1) / max(v1)) - min(v1)
return (new_data, new_testing_data)
推荐阅读
- c# - 在 Asp.Net Core 3.1 中处理 SignalR 集线器中的所有异常
- windows - 如何检查jenkins是否安装在windows中?
- python - 熊猫模块导出,拆分数据
- cassandra - 将数据插入cassandra的问题
- node.js - 如何在 3.1.6 版本的代码中使用 strapi 上传插件?
- javascript - 使用 AnyLogic,我们可以编译道路交通库和 GIS 地图来模拟整个城市的供应链和物流吗?
- reactjs - “开关”类型上不存在“已检查”属性
- java - IntelliJ IDEA 不使用idea64.exe 打开,而是使用idea.bat 打开
- java - 如何获取war文件中的文件路径以部署在tomcat上
- python - 如何在 PYTHON 的字典中打印出 Key 的内容?