【问题标题】:Attaching the label to the vector of the image将标签附加到图像的矢量上
【发布时间】:2018-10-18 20:07:47
【问题描述】:

我有一个 images 列表,其中包含图像矢量和相关标签(即类)。

images.append([np.array(image_array_to_vector),np.array([label])])

如果我想阅读X 中的图像和y 中的标签,我做了以下操作:

X = np.array([i[0] for i in images])
y = [i[1] for i in images]

然后我想将X 保存在一个文本文件中,如下所示:

X_to_text_file = np.savetxt('x.txt', X.reshape(np.shape(X)), fmt='%5f')

以上工作正常。我想做的更改是将标签附加到X 中的矢量,并将其保存到文本文件中。

例如,我尝试过这样做:

X = np.array([[i[0],i[1]] for i in images])

但是,出现以下错误:

TypeError: Mismatch between array dtype ('object') and format specifier ('%5f %5f')

并且,当尝试如下使用字典时:

X = np.array([{i[1]:i[0]} for i in images])

我收到此错误:

TypeError: unhashable type: 'numpy.ndarray'

那么,是的,如何将标签附加到矢量并将其保存在文本文件中?

谢谢。

【问题讨论】:

    标签: python arrays numpy vector


    【解决方案1】:

    在不知道原始数据的样子或将来如何从 .t​​xt 中检索信息的情况下回答这个问题有点困难,但是将“%5f”格式更改为字符串“%s”格式应该可以解决您的问题:

    X_to_text_file = np.savetxt('x.txt', X.reshape(np.shape(X)), fmt='%s')
    

    【讨论】:

    • 您可以查看此答案以获取更多信息,似乎与您的问题相似:stackoverflow.com/questions/48230230/…
    • 感谢您的友好回复。事实上,我需要数据是浮动的,因为当我将它更改为“%s”时,我在代码的另一个操作中得到以下内容:“ValueError: could not convert string to float”
    • 原始数据为100x100图片,标签为标量值
    • 我看到您正在将标签添加到数组中。一张图片可以有多个标签吗?
    • 我问是因为我看到您正在尝试使用 %5f 格式保存“对象”类型的数组。你有一个由 numpy 数组组成的 numpy 数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2020-05-06
    • 2012-10-13
    • 1970-01-01
    相关资源
    最近更新 更多