这些让人相见恨晚的高效代码小技巧你听过吗?

这些让人相见恨晚的高效代码小技巧你听过吗?
图源:unsplashpython

Python出圈了,彷佛如今人人都在学Python,朋友圈的课程广告遍地跑,小学生都看起了编程入门。的确,Python是目前公认的最通用的编程语言,以其易理解易操做的优点攻占了每个职场人大学生必备技能榜单。编程

学会Python确实能协助你高效工做。但学了是一回事儿,会了是另外一回事儿,不是每一个人学过Python的人都能玩得转它。如下几个小技巧,能让你离玩转Python更进一步。编程语言

这些让人相见恨晚的高效代码小技巧你听过吗?

把不经常使用的类别整合成一个

有时你会获得元素分布不均的栏,少有的类别也是仅仅存在而已。一般会但愿能将这些类别合并为一个。ide

df.artists.value_counts()

这些让人相见恨晚的高效代码小技巧你听过吗?

要将Coldplay和Weekend合并到一个类别中,由于它们对数据集的影响微乎其微。该怎么作?函数

首先,找到不想改变的元素,好比Eminem,TaylorSwift和BrunoMars:学习

myList =df.artists.value_counts().nlargest(3).index

使用where()函数替换其余元素编码

df_new = df.where(df.artists.isin(myList),other= otherartists )
df_new.artists.value_counts()

这些让人相见恨晚的高效代码小技巧你听过吗?

这即是按要求修改后的更新列。3d

这些让人相见恨晚的高效代码小技巧你听过吗?

查找列表的新元素

给定两个不一样的列表,要求找到一个列表中有但另外一个列表中没有的元素时,参照这两个列表:rest

A = [ 1, 3, 5, 7, 9 ]
B = [ 4, 5, 6, 7, 8 ]

为了找到列表A中的新元素,咱们取列表A与列表B的集合差:code

set(A) - set(B)

这些让人相见恨晚的高效代码小技巧你听过吗?

值一、3和9只出如今列表A而不出如今列表B中。

这些让人相见恨晚的高效代码小技巧你听过吗?
图源:unsplash

这些让人相见恨晚的高效代码小技巧你听过吗?

摆脱警告

运行代码时,常常会收到不少警告。没过多久它就开始令人恼火。例如每当导入朝代时,可能会收到警告(FutureWarning)消息

这些让人相见恨晚的高效代码小技巧你听过吗?

能够用下述代码隐藏全部警告。请确保其写在代码顶部。

import warnings
warnings.filterwarnings(action= ignore )
import keras

这将有助于在整个代码中隐藏全部警告。

这些让人相见恨晚的高效代码小技巧你听过吗?

Map() 函数

map()函数接受函数(function)和序列(iterable)两个参数,返回包含结果的映射:

map(func,itr)

func 是指接收来自映射传递的给定序列元素的函数。

itr是指能够被映射的序列。

def product(n1,n2):
    return n1 *n2 list1 = (1, 2, 3, 4)
list2 = (10,20,30,40)result = map(product, list1,list2)
list(result)

这些让人相见恨晚的高效代码小技巧你听过吗?

开始解码。

Product函数接受两个列表,并反馈两个列表的乘积。列表1和列表2是充当map函数序列的两个列表。map()集product函数和序列于一身→列表1和列表2,以及反馈两个列表的乘积做为结果。

这些让人相见恨晚的高效代码小技巧你听过吗?
图源:unsplash

这些让人相见恨晚的高效代码小技巧你听过吗?

Map + Lambda组合

可使用lambda表达式修改上述代码,以替换product函数:

list1 = (1, 2, 3, 4)
list2 = (10,20,30,40)
result = map(lambda x,y: x * y, list1,list2)
print(list(result))

Lambda表达式有助于下降单独编写函数的成本。

这些让人相见恨晚的高效代码小技巧你听过吗?

启动、中止和设置

Slice(start:stop[:step])是一般包含部分序列的对象。

· 若是只提供中止,则从索引0开始生成部分序列直到中止。
· 若是只提供开始,则在索引开始以后生成部分序列直到最后一个元素。
· 若是同时提供开始和中止,则在索引开始以后生成部分序列直到中止。
· 若是起始、中止和步骤三者同时提供,则在索引开始以后生成部分序列直到中止,并增长索引步骤。

x = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
x[ 1: 6: 2]

这些让人相见恨晚的高效代码小技巧你听过吗?

上面的代码中,1是开始索引,6是中止索引,2是步骤索引。这意味着从指数1开始到指数6中止,步长为2。

还可使用[::-1]操做翻转列表:

x[::-1]

这些让人相见恨晚的高效代码小技巧你听过吗?

没错,经过开始、中止和步骤操做,很容易就能够将整个列表进行逆转。

这些让人相见恨晚的高效代码小技巧你听过吗?

组合Zip和Enumerate

zip和enumerate函数经常使用于for循环,两个一块儿用就更精彩了。它不只能够在单个循环中迭代多个值,并且能够同时得到索引。

NAME = [ Sid , John , David ]
BIRD = [ Eagle , Sparrow , Vulture ]
CITY =[ Mumbai , US , London ]for i,(name,bird,city) inenumerate(zip(NAME,BIRD,CITY)):
    print(i,  represents  ,name,  , ,bird,  and  ,city)

这些让人相见恨晚的高效代码小技巧你听过吗?

Zip函数能够将全部列表合并为一个,以便同时访问每一个列表,而Enumerate函数协助得到索引以及附加到该索引的元素。

这些让人相见恨晚的高效代码小技巧你听过吗?

随机抽样

有时会遇到很是大的数据集,于是决定处理数据的随机子集。pandas数据框的sample函数能够实现更多的功能。不妨看看在上面已经建立过的歌星数据模型。

df.sample(n=10)

这有助于获取数据集里随机的10行。

df.sample(frac=0.5).reset_index(drop=True)

分解上面的代码,frac参数取值在0到1之间,包括1。它占用分配给它的数据流的一部分。在上面的代码片断中指定了0.5,所以它将返回size→0.5*的随机子集

这些让人相见恨晚的高效代码小技巧你听过吗?
图源:unsplash

你能看到前面的reset_index函数。它有助于适当地重排索引,由于获取随机子集时,索引也会被从新排列。
这些让人相见恨晚的高效代码小技巧你听过吗?

保留内存

随着编程的深刻,你将意识到记住内存高效代码的重要性。生成器是返回咱们能够遍历的对象的函数。这有助于有效利用内存,所以它主要用于当在无限长的序列上迭代。

def SampleGenerator(n):
    yield n
    n = n+1
    yield n
    n = n+1
    yield ngen = SampleGenerator(1)

Yield 语句暂停函数,保存其全部状态,并在之后的连续调用中继续执行。

print(next(gen))
print(next(gen))
print(next(gen))

这些让人相见恨晚的高效代码小技巧你听过吗?

如你所见,yield保存了前一个状态,而每当咱们调用下一个函数时,它都会继续到下一个返回其新输出的yield。

经过添加在generator函数内无限运行的while循环,能够迭代单个yield。

def updatedGenerator(n):
    while(1):
        yield n
        n = n + 1
a = updatedGenerator(1)for i in range(5):
    print(next(a))

这些让人相见恨晚的高效代码小技巧你听过吗?

While语句能够反复迭代相同的yield语句。

这些让人相见恨晚的高效代码小技巧你听过吗?

救世主Skiprows

重头戏压轴出场!要读取的csv文件过大,以致于内存不够用?Skiprows能够轻松解决。

这些让人相见恨晚的高效代码小技巧你听过吗?
图源:unsplash

它能够指定须要在数据框中跳过的行数。

假设有个100万行的数据集,不适合你的内存。若是分配skiprows=0.5 million(跳读50万行),在读取数据集的时候就会跳过50万行,这样就能够轻松地读取数据集的子集。

df = pd.read_csv( artist.csv )
df_new = pd.read_csv( artist.csv ,skiprows=50)df.shape, 
df_new.shape

这些让人相见恨晚的高效代码小技巧你听过吗?

在上面的代码片断中,df表示包含112行的数据集。在添加了skiprows=50(跳读50行)以后,它跳过了数据集中的50行,从而读取了62行做为新数据集。

破案啦!编码效率提高一大截的秘密就在于此。

留言点赞发个朋友圈

咱们一块儿分享AI学习与发展的干货

编译组:王品1、刘鉴楠
相关连接:
https://towardsdatascience.com/10-interesting-python-tricks-to-knock-your-socks-off-1dd4d8e82101

如转载,请后台留言,遵照转载规范

推荐文章阅读

ACL2018论文集50篇解读
EMNLP2017论文集28篇论文解读
2018年AI三大顶会中国学术成果全连接
ACL2017论文集:34篇解读干货全在这里
10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

这些让人相见恨晚的高效代码小技巧你听过吗?

相关文章
相关标签/搜索