当前位置: 首页 > 科技观察

这些有用但最不受欢迎的Python库你知道多少?

时间:2023-03-19 15:39:11 科技观察

生活中,常常有一些人,明明很有能力,却得不到身边人的青睐。永远闪耀的是金子。这句话在现实生活中并不完全适用。人口众多,人才辈出。如果你想成功,你需要一个一鸣惊人的机会。Python也一样。Python中有许多性能良好的现成库。集合就是其中之一。collections模块提供“高性能容器数据类型”,可以完美替代通用容器字典、列表、集合和元组。但它常常被忽视或低估。今天,小新就努力做一个“好伯乐”,介绍那些不被看好的Python库,发掘它们的无限潜力。本文将为读者详细介绍这三种数据类型。相信看完这篇文章,你一定会好奇,以前没有这些库,你是如何完成编程的。CounterCounter的名字很贴切——它的主要功能是计数。听起来很简单,但事实证明,数据科学家经常要进行计数,所以非常有效。有几种实现初始化的方法,但是我一般设置一个值列表如下图fromcollectionsimportCounterages=[22,22,25,25,30,24,26,24,35,45,52,22,22,22,25,16,11,15,40,30]value_counts=Counter(ages)print(value_counts.most_common())如果读者要运行上面的代码(推荐使用这个高效工具),输出如下将得到:[(22,5),(25,3),(24,2),(30,2),(35,1),(40,1),(11,1),(45,1),(15,1),(16,1),(52,1),(26,1)]按最常见顺序排列的元组列表,其中元组首先包含值,然后是计数。所以你可以很快看出22是频率为5的最常见年龄,并且该年龄只出现一次。完毕!DefaultDict这是我的最爱之一。DefaultDict是一个多用途字典,在第一次遇到时为每个键初始化默认值。接下来是一个实例Fromcollectionsimportdefaultdictmy_default_dict=defaultdict(int)forletterin'theredfoxranasfastasitcould':my_default_dict[letter]+=1print(my_default_dict)returndefaultdict(,{'a':4,'':8,'c':1,'e':2,'d':2,'f':2,'i':1,'h':1,'l':1,'o':2,'n':1,'s':3,'r':2,'u':1,'t':3,'x':1})通常,当试图访问一个值时即不在字典中,显示错误的界面。还有其他方法可以处理这个问题,但是当用户想要使用默认值时它会添加一些冗余代码。上面的例子中,defaultdict初始化为int,表示第一次访问时,默认为0,这样很容易统计出所有字符,简洁明了。另一个常见的初始化是列表,它允许用户在第一次访问时立即开始附加值。NamedTupleNamedTuple对于数据科学家的意义至关重要。接下来的场景可能听起来很熟悉,因为我喜欢列表,所以我在做特征工程,只是将这些特征添加到对应的类中,然后输入到机器学习模型中。当您获得数百个功能时,事情会变得非常混乱。使用了哪个功能,或者引用了列表中的哪个索引是不明确的。更糟糕的是,当其他人查看代码时,他们不知道如何使用所有这些功能。输入NamedTuples来解决这个难题。只需要多写几行代码,混乱的列表就会立刻恢复秩序。FromcollectionsimportnamedtupleFeatures=namedtuple('Features',['age','gender','name'])row=Features(age=22,gender='male',name='Alex')print(row.age)如果你运行这段代码,它会打印“22”,这是该行中存储的特征用户的年龄。极好的!现在,不再需要使用索引来访问,而是有一些易于理解的名称,这大大提高了代码的可维护性和整洁性。这些特性都有助于编写更简洁的代码。来源:Pexels看到这里,读者应该对收藏库和它的一些很棒的功能有了一些了解,赶紧用起来吧!你会惊奇地发现它们有很多隐藏的用途,以及它给你的代码带来什么质的变化。享受他们带来的便利!动动你的小手,一起来试试吧~