[]这些让人相见恨晚的高效代码小技巧你听过吗?( 三 )
本文插图
图源: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学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范
推荐阅读
- 三易生活|即使在新款手机中,我们可能也避不开这些烦恼
- 女神玩数码|这些号段千万不能销号,已升值数百倍
- 互联网乱侃秀|都说苹果没5G落后国产机了,结局却很让人扎心,销量又是第一
- 搜狐新闻|充电五分钟,看剧四小时!Reno4 Slogan再升级,这些必杀技很能打
- 趣点要闻|手机发烫是怎么回事?搞清楚这些,有效给手机降温
- CSDN|Rust 让人奔溃的那些特性!
- 成交额618战绩出炉!京东成交额大增74%,iPhone首次大降价,这些产品遭疯抢
- 手机之家|手机找回?数据备份?华为手机云空间这些功能很实用
- 手机大魔王|小米又带来了惊喜,Redmi10x 真的让人酸,5G来袭我选择抄底4G
- 京东6.18元的购买力 在京东618居然能拥有这些?!