【问题标题】:TypeError when working with lists in Python在 Python 中使用列表时出现 TypeError
【发布时间】:2017-07-31 15:58:17
【问题描述】:

我正在尝试使 code 适应我自己的数据。

DATA=[1,2,3,4,5,6,7,8,9,10]
ind=[1,3,6,2]
ratio=[2,3]
DATA[ind[:ratio[0]],1:]

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 TypeError:列表索引必须是整数,而不是元组

知道为什么吗? (我不太明白,1:] 应该做什么)

【问题讨论】:

  • 请提供一段可执行代码,不要使用外部链接作为支持——我们希望在这里粘贴最少的代码
  • ind[:ratio[0]],1: 是一个元组。看起来你是有 R 经验的。如果是这样,我建议你研究 pandasnumpy,这将为你提供这种语法
  • 您正在处理的代码是使用 numpy 数组,而不是您在此处拥有的 Python lists。有一个巨大的差异。例如,numpy 数组支持多维索引,这就是您在此处尝试做的。列表没有。
  • @juanpa.arrivillaga 哪一部分应该是numpy数组?我已经用 numpy.asarray() 将它们全部更改为 numpy 数组,现在我得到 'IndexError: too many indices for array'
  • 是的,因为您使用的是多维索引,但您的 lists 将被转换为一维数组。

标签: python arrays syntax


【解决方案1】:

36 行看,Data 似乎不是一个列表,实际上是一个数组:

DATA = np.concatenate((data_train,data_test_val),axis=0)

正如您在 numpy documentation 中看到的,concatenate() 返回的是数组而不是列表。

【讨论】:

  • 谢谢。必须将 DATA 转换为 numpy 数组并重塑。现在它工作正常(假设它是一个列表)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 2013-05-05
  • 1970-01-01
  • 2020-12-16
相关资源
最近更新 更多