解讀一篇Numpy好文

1
html

最近工做太忙,每次回家洗洗就不想再開電腦碼字了,寫了也近兩年了,習慣了,時間久了,不寫都欲罷不能。web


尤爲是有了好的點子,或者對某個概念或理論有了新的解讀、新的展現形式、學習到別人新的講解時,我都會忍不住,不假思索的佔用休息時間來碼字,一同與關注個人人,尤爲是一直晚上習慣讀到我文章的老鐵們,共同奮進,這種感受就是支撐我作下去的最大力量。算法


2數組

上週分享了一篇:盤一盤 NumPy (上),出自王聖元兄的盤點筆記。這幾天,我抽時間仔細學習了下,真的有種醍醐灌頂的感受,寫的真是太好了。在現在公衆號推文遍地都是走流量的狀況下,王兄仍能堅持初心,用心血回饋咱們這些廣大讀者,心中充滿對其敬畏之情。微信


就在昨天,在我分享了:六月總結和思考後,有位讀者深有感觸,我想應該是說出了不少不少粉絲們的心聲:app



是啊,真正的有價值的原創不是那麼容易就被會搜到的,更多的被搜到大都是一致,甚至雷同,簡單的堆砌。機器學習


3ide

爲了知足這位讀者和更多粉絲們的期待,我今晚一回來就靠在牀頭上,奮筆疾書,就是由於王兄的這篇講解Numpy的文章,真是作到了:能把事情說清楚,讓人醍醐灌頂,而且徹底是毫無保留的,免費的貢獻出來。學習


這也應了那句:任何偉大的事情,都由一個微不足道的開始,王兄的這篇盤點Numpy看似微不足道,但卻在現在的公衆號領域所賦予的意義重大。flex


4

下面附上我對聖元兄的這篇盤一盤Numpy的拙見。


這是上篇,文章圖文並茂地講透了:Numpy數組的視圖,內存塊存儲,這兩個最核心的概念以及它們的不一樣;同時,附上了清楚的、完美的示意圖,真的是難能難得,以下圖所示,二維數組的視圖,計算機中內存是如何存儲它的。


能夠看到,存儲是按照嚴格的連續內存形式,只不過會增長一個stride爲每一個維度打標



這兩個概念及區別是深刻理解Numpy的許多性質的重要理論基礎。


基於此,還深刻淺出地講解了三維數組的轉置,這多是我見過的最深刻淺出的講解版本了。如下所有引用自王兄的這篇講解,只用精美的四幅圖,就把三維,表明高維數組轉置的難點,講透了。



數組轉置的本質:交換每一個軸 (axis) 的形狀 (shape) 和跨度 (stride)。



四幅圖解決問題:



原數組





內存塊的樣子





軸 0 和軸 1 互換






轉置結果




5

怎麼樣,理解完這些,Numpy的本質,以及高維數組的轉置等操做,是否是有了一種全新的理解,one-pass. 


深刻淺出地講解抽象的概念和操做,這一能力,過重要了!這纔是真正名師纔可能具有的能力和才華,最後再次感謝《王的機器》公衆號做者:王聖元,新加坡國立大學畢業的大佬。



plus, 11點到家,打開電腦就碼字,怕過了12點就發不出來了,因此像打了雞血同樣,不免出現錯字,多見諒。


但願你們多多支持,點贊和轉發,真正的好文是給咱們帶來知識和啓發的。


280篇筆記

Python

算法

都有



點個好看

本文分享自微信公衆號 - Python機器學習算法說書人(Python-ML-Algorithm)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索