TypeError:float()参数必须是字符串或数字,而不是'list'

时间:2017-09-08 02:32:28

标签: python tensorflow

我的代码在这里:

temp = np.array([images, labels])
temp = temp.transpose()
np.random.shuffle(temp)

image_list = list(temp[: 0])
label_list = list(temp[: 1])
label_list=[int(float(i)) for i in label_list]

return image_list, label_list

spder给出错误:TypeError:float()参数必须是字符串或数字,而不是'list'

任何人都知道如何解决它?非常感谢你

3 个答案:

答案 0 :(得分:1)

您的label_list是一个列表清单。

label_list = list(temp[: 1])

这应该是:

label_list = temp[:1]

然后,当您致电for i in label_list时,i将填充对象而不是列表。

答案 1 :(得分:0)

当你不应该做的时候,你正在切片。这些行错了:

<p id="paragraph" class="mtx-3d">
  So. Yeah I mean. <br>I've been thinking <br>A lot
</p>

切片意味着您将2D数组转换为数组列表(即使列表中可能只有一个数组)。我想你想要没有冒号的东西:

image_list = list(temp[: 0])
label_list = list(temp[: 1])

您在这里进行了索引(而不是切片),因此您将一维数组转换为单个非嵌套列表,我认为这就是您想要的。

答案 2 :(得分:0)

如果你纠正了标签和图片列表,你就错误地列出了列表,而不是一切都应该正常工作。