7個python案例中的資料思維
1、計算1+2+…+100的和
普通實現:for迴圈累計,至少3行程式碼
Python實現:print(sum(range(1,101)))
解析:
sum函式在無參時,不管內部是什麼都是全部相加(range返回的並不是列表,而是自身的物件,這都不重要),所以用一行程式碼就可以實現。
比如print(sum([1,2],[3,4])),返回值會是10。有沒有發現,這種實現方式跟你大腦裡面的初步邏輯:1,2,…100先羅列出來,然後直接相加就行了很像。這個過程中不需要用到迴圈,沒學過程式設計的人也不可能想到迴圈
2、輸入列表[1,2,3,4,5],希望能實現輸出是[1,4,9,16,25]
普通實現:先定義一個函式實現平方功能,再for迴圈呼叫,至少5行程式碼
Python實現:
print(list(map(lambdax:x**2,[1,2,3,4,5])))
解析:將平方函式一次性對映與每一個元素,是不是很符合函式的本質,高中的時候,我們學過,函式即直接對映,我們壓根不用關心該函式的名稱,只需要知道功能就行,是不是很簡單粗暴有效。所以python強大就強大在這些地方:各種函式庫,你要做的就是搬過來
3、列表[[1,2,3],[4,5,6],[7,8,9]]所有子集展開,輸出為[1,2,3,4,5,6,7,8,9]
普通實現:通過索引來實現
Python學習群:556370268,有大牛答疑,有資源共享!有想學習python程式設計的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習。
Python實現:
print([ jfor i in [[1,2,3],[4,5,6],[7,8,9]] for j in i ])
解析:一層一層分解,先把第一層取出來,看有哪些元素,在此基礎上重複操作一次,壓根不需要索引。作為分析師,學會對問題進行識別,然後用一些生活中的方法論去解決尤為重要。最怕的就是問題還沒想清楚,就直接使用者分群聚類(這種情況我見到太多,不想當面吐槽),兄弟,趕緊去面壁
4、x="abc",y="def",z=["d","e","f"],分別求出x.join(y)和x.join(z)返回的結果
解析:
兩者的返回值是一樣的,都是dabceabcf,join函式能夠將列表、元組、字串中的元素直接進行拼湊,非常好用和人性化。我想到了我第一款正式資料分析軟體是SAS,那個時候經常為各種檔案格式、變數格式頭疼不已,光sas匯入檔案可能就有各種bug,非常頭疼,但還是用了好幾年。我們在工作的過程中,往往會形成一種慣性:明明某個業務很有問題,但總是有藉口去選擇不解決;明明發現自己的分析思路不太體系化,只要能滿足當前需要,就選擇忽視它。對於分析師產品運營,一直在做業務的優化優化,但如果你自身都沒有優化好,你怎麼能把工作做的更好。
5、打印出楊輝三角前十行
程式及答案:

image

image
解析:
該案例本身的問題非常清晰,難就難在問題的拆解階段:怎麼樣去簡潔實現楊輝三角。這裡用到了兩個基礎但很混淆知識點,1是列表的+操作是新增,map函式是對列表的每個元素進行操作,而不是列表整體。可以看出,要想進行良好的問題拆解,必須要有紮實的基本功。最近有一位同學遇到一個問題:註冊購買率同比下降,而他在看分子分母各自的影響值,這就暴露出問題的拆解階段需要加強。所以當遇到一個明確的業務問題而無從下手時,就已經說明你對業務的理解要加深:體驗產品入手,然後看指標體系,再去和業務溝通。
6、計算2+22+222+2…2222,多少個2由輸入控制
解析:
該問題肯定是用迴圈來解決,難點就是在於怎麼樣去有效的累積每一個因子。

image
這裡利用小小的字串相加就很好的實現了每一次的拼接。所以不要小看任何一個知識點。在資料分析中,資料異常是最考驗分析師的零散知識點理解深入度。比如趨勢異常:你看的是多久趨勢,能不能這樣環比同比,真的是異常嗎。很多時候不是問題多複雜,而是思維固化。最近我也在和很多研發同學聊一些資料異常,他們的反饋是:資料分析師這個思維力太強了,能夠打的很開,很快定位到問題
Python學習群:556370268,有大牛答疑,有資源共享!有想學習python程式設計的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習。
7. 企業發放的獎金根據利潤提成。
利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
解析:
按照一般的程式設計邏輯,肯定是通過if elif來分段實現,這是最好理解和最通俗的做法。不過:作為一名分析師,我們的程式碼、ppt、excel、專題報告還是要有專業度的,所以既要能實現需求,還要能滿足審美要求。

image
這裡通過增加輔助列表來實現。實際上,藉助額外輔助這種思維非常非常常見。上次文案中的圖表製作,就用到了很多輔助線。我們高中做立體幾何的時候經常畫各種虛擬線,也是這種思想。所以無論你的職位是什麼,思維都是想通的,也是需要訓練的
好的,今天對python的初步講解就到這裡。順便提下:上面的程式碼如果你不太理解,那就先記住他,任何一門學科都是需要記憶力的,而這個也是可以訓練的。