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

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

作者: 一位学有余力的同学 | 来源:发表于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