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


本文插图

图源: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学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范


推荐阅读