1
最近工作太忙,每次回家洗洗就不想再开电脑码字了,写了也近两年了,习惯了,时间久了,不写都欲罢不能。
尤其是有了好的点子,或者对某个概念或理论有了新的解读、新的展示形式、学习到别人新的讲解时,我都会忍不住,不假思索的占用休息时间来码字,一同与关注我的人,尤其是一直晚上习惯读到我文章的老铁们,共同奋进,这种感觉就是支撑我做下去的最大力量。
2
上周分享了一篇:盘一盘 NumPy (上),出自王圣元兄的盘点笔记。这几天,我抽时间仔细学习了下,真的有种醍醐灌顶的感觉,写的真是太好了。在如今公众号推文遍地都是走流量的情况下,王兄仍能坚持初心,用心血回馈我们这些广大读者,心中充满对其敬畏之情。
就在昨天,在我分享了:六月总结和思考后,有位读者深有感触,我想应该是说出了很多很多粉丝们的心声:
是啊,真正的有价值的原创不是那么容易就被会搜到的,更多的被搜到大都是一致,甚至雷同,简单的堆砌。
3
为了满足这位读者和更多粉丝们的期待,我今晚一回来就靠在床头上,奋笔疾书,就是因为王兄的这篇讲解Numpy的文章,真是做到了:能把事情说清楚,让人醍醐灌顶,并且完全是毫无保留的,免费的贡献出来。
这也应了那句:任何伟大的事情,都由一个微不足道的开始,王兄的这篇盘点Numpy看似微不足道,但却在如今的公众号领域所赋予的意义重大。
4
下面附上我对圣元兄的这篇盘一盘Numpy的拙见。
这是上篇,文章图文并茂地讲透了:Numpy数组的视图,内存块存储,这两个最核心的概念以及它们的不同;同时,附上了清楚的、完美的示意图,真的是难能可贵,如下图所示,二维数组的视图,计算机中内存是如何存储它的。
可以看到,存储是按照严格的连续内存形式,只不过会增加一个stride为每个维度打标。
这两个概念及区别是深入理解Numpy的许多性质的重要理论基础。
基于此,还深入浅出地讲解了三维数组的转置,这可能是我见过的最深入浅出的讲解版本了。以下全部引用自王兄的这篇讲解,只用精美的四幅图,就把三维,代表高维数组转置的难点,讲透了。
数组转置的本质:交换每个轴 (axis) 的形状 (shape) 和跨度 (stride)。
四幅图解决问题:
原数组
内存块的样子
轴 0 和轴 1 互换
转置结果
5
怎么样,理解完这些,Numpy的本质,以及高维数组的转置等操作,是不是有了一种全新的理解,one-pass.
深入浅出地讲解抽象的概念和操作,这一能力,太重要了!这才是真正名师才可能具备的能力和才华,最后再次感谢《王的机器》公众号作者:王圣元,新加坡国立大学毕业的大佬。
本文分享自 Python机器学习算法说书人 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!