【问题标题】:TypeError: Trying to split data randomly in training and test setTypeError:尝试在训练和测试集中随机拆分数据
【发布时间】:2019-09-03 14:03:58
【问题描述】:

我想将前 70% 的洗牌数据作为训练数据,其余的作为测试数据,但我收到了那个奇怪的错误。

我查看了其他有该错误的代码示例,但不明白,抱歉。

import numpy as np

segment_relative_path = ["a", "b", "c", "d", "e", "f"]
idx = np.random.permutation(len(segment_relative_path))
train_data = segment_relative_path[idx[:int(0.7*len(idx))]]

这给出了:

TypeError:只有整数标量数组可以转换为标量索引。

为了避免该错误,我必须进行哪些更改?

【问题讨论】:

  • 这会起作用 - 您的代码有语法错误。 train_data = segment_relative_path[:int(.7*len(idx))]
  • 感谢您的分析,但我基本上想做的是:stackoverflow.com/questions/43229034/…
  • 您提到的答案只是随机化数据[自变量和因变量],而不是将其拆分为训练/测试。
  • 是的,我想随机化数据并使用前 70% 的随机化数据作为训练集。

标签: python-3.x numpy typeerror


【解决方案1】:

您正在尝试将索引数组用于列表。列表只接受标量整数索引。 但是,如果您将 segment_relative_path 转换为数组,它将起作用:

import numpy as np

segment_relative_path = ["a", "b", "c", "d", "e", "f"]
idx = np.random.permutation(len(segment_relative_path))
train_data = np.array(segment_relative_path)[idx[:int(0.7*len(idx))]]

【讨论】:

  • 就是这样!谢谢!
猜你喜欢
  • 2016-12-01
  • 1970-01-01
  • 2018-05-26
  • 2018-09-08
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 2013-06-29
相关资源
最近更新 更多