小姐姐的Python隐藏技巧合集,推特2400赞,代码可以直接跑
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 常常发资源的英伟达工程师小姐姐Chip Huyen,又发了一套Python隐藏功能合集。 里面都是她“从前没发现,或者从前不太敢用”的机器学习技巧,有notebook可以直接跑。 合集名叫python-is-cool,推特宣布之后不到半天,已经收获了2400+赞。 那么,这份令人奔走相告的资源,到底长什么样子? 隐藏技巧五大类就像开头提到的:这里的功能,要么是小姐姐花了很久才找到的,要么是曾经让她瑟瑟发抖到不敢尝试的。 不过现在,她的技巧已经成功支配了这些功能,于是分享了出来。 目前一共有5个版块,专注机器学习,日后还会持续更新: 1、Lambda、Map、Filter、Reduce函数 lambda 关键字,是用来创建内联函数 (Inline Functions) 的。square_fn 和 square_ld 函数,在这里是一样的。
lambda 函数可以快速声明,所以拿来当回调 (Callbacks) 函数是非常理想的:就是作为参数 (Arguments) 传递给其他函数用的,那种函数。 和 map、filter 和 reduce 这样的函数搭配使用,尤其有效。 map(fn,iterable) 会把 fn 应用在 iterable 的所有元素上,返回一个map object。
这样调用,跟用有回调函数的 map 来调用,是一样的。
map 也可以有不止一个 iterable。 比如,你要想计算一个简单线性函数 f(x)=ax+b 的均方误差 (MSE) ,两种方法就是等同的。
要注意的是,map 和 filter 返回的是迭代器 (Iterator) ,这就是说它们的值不是存储的,是按需生成的。 当你调用了sum(diffs) 之后,diffs 就空了。如果你想要保留 diffs 里面所有的元素,就用 list(diffs) 把它转换成一个列表。 filter(fn,iterable) 也是和 map 一样道理,只不过 fn 返回的是一个布尔值,filter 返回的是,iterable 里面所有 fn 返回True的元素。
reduce(fn,iterable,initializer) 是用来给列表里的所有元素,迭代地应用某一个算子。比如,想要算出列表里所有元素的乘积:
上面这串代码,和下面这串代码是等同的:
2、列表操作 小姐姐说,Python的列表太炫酷了。 2.1、解包 (Unpacking) (编辑:ASP站长网) |