美文网首页
机器学习如何快速生成标签

机器学习如何快速生成标签

作者: 一位学有余力的同学 | 来源:发表于2021-03-29 21:11 被阅读0次

    一些数据的标签是对数据的文件夹进行命名标注的,比如某一个文件夹里放了100张猴子的照片,但是照片命名不是猴子,而是图片的编号从1到100,"猴子"这一标签是打在文件夹上。但有些时候我们又需要对每一张照片都标注上是猴子,这该怎么办呢?这里我提供三种办法,如果有更好的办法欢迎在评论区补充。

    1. for循环

    我看了很多代码,大部分都是用for循环来完成的,比如:

    n = 100
    ["monkey" for i in range(n)]
    

    这样是一种简单有效的办法,但是for循环往往会增加程序运行时间,标签不多的情况下可以使用。

    2. 使用pandas

    使用pandas可以对整列数据进行操作,因此我们创建一个dataframe即可,不过最后还需要将dataframe格式转换成ndarray的格式

    label = pd.DataFrame(data = "monkey", index=range(100), columns=["label"])
    

    如果文件夹里前50个是猴子,后50个是老虎呢,我们只需将后50个赋值为"tiger",操作如下:

    label = pd.DataFrame(data = "monkey", index=range(100), columns=["label"])
    label[50:100] = "tiger"
    

    3. 使用np.tile()

    这是我一直都在寻找的一种方法,for循环会增加运行时间,而pandas还要对数据格式进行转换,并且不方便对多个标签进行标注,有了np.tile就方便了许多,这个方法也是在看其它代码的时候偶然发现的,不过作者没有将它用来生成标签,了解它的特性后我发现这个函数简直太适合用来打标签了。(狂喜)ヾ(≧▽≦*)o
    使用方法如下:

    np.tile("monkey",100)
    

    该函数会产生一个有100个"monkey"的ndarray,怎么样,是不是非常方便!
    它还有其它花式玩法:

    np.tile(["monkey", "tiger"], 50)
    

    它会产生50个"monkey"和50个"tiger",不过它们是交替排列的,像这样:

    "monkey", "tiger", "monkey", "tiger", ....
    

    如果还有更简单高效的方法欢迎评论区留言~

    相关文章

      网友评论

          本文标题:机器学习如何快速生成标签

          本文链接:https://www.haomeiwen.com/subject/lpkihltx.html