python 高階編程

python 除了速度慢 穩定性差 不夠健壯 真的沒有其他缺點 !!
正常使用python 基本編程就夠了,但是正是因爲 python的性能差,我們如果可以使用python高效編程將大大提高運行速率,順便舉個例子
上週在牛人的啓發下 自己用python 實現了推薦系統常用的ALS 最小二乘算法,原來的大牛 人家使用的是嵌套list 來實現Matrix ,代碼很健壯 ,相同的數據集迭代十次 ,基本上三四分鐘,而我爲了尋找其他途徑的可能使用 defaultdict(lambda:list()) 來模擬Matrix ,發現性能差了非常大,我這個要迭代十次,大概三個小時。。。 耗時主要在 矩陣相乘階段計算rmse損失值
後來我對 這部分代碼做了相關優化,迭代十次的耗時壓縮到了20分鐘內,但是還是 有差距,後來我乾脆直接把大牛的一部分矩陣相乘的代碼拿來即用,耗時壓縮到了13分鐘,還是有差距,那這個時候的差距就不是代碼問題,是你所選擇的數據容器,你用dict 模擬矩陣 效率要差於嵌套的list,所以我們看 ,好的性能 源自你如何去選擇好的數據容器和足夠優化你的代碼結構和邏輯。

python的 高階編程其實一點也不深奧 ,集中於
1.列表推導 字典推導

  1. map filter reduce lambda表達式
  2. 裝飾器 和屬性裝飾
    4.生成器
    5.動態屬性 裝飾
    6.正確的使用拆箱裝箱
    7.上下文管理器
    8.描述器
    9.正確使用數據容器
    https://www.cnblogs.com/keep-going2099/articles/8179177.html
    https://www.cnblogs.com/wangjian8888/p/6111701.html

對我而言我認爲 對生成器 yield還是有點模糊,其他的都比較容易理解
關於 生成器 yield 有一篇不錯的文章
https://www.jianshu.com/p/babb4add9245

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章