-
1 # 玩著學程式設計
-
2 # 魔數思
作為研究生 用python的工作主要是資料分析崗位
對資料崗來說 除了演算法模型之外 還需要的技能有
1 大資料工具
學會hadoopbspark這些大資料的工具的使用 這是海量資料處理的必備技能
2 工程介面
為了和其他團隊協作 需要熟悉restful api和一些簡單的伺服器後臺的開發經驗 還有自動化部署測試的經驗 尤其是測試這塊 資料崗的測試和開發崗的測試內容完全不一樣 不僅僅是功能流程正確 還有邏輯和決策是合理 這是不瞭解資料的測試做不到的
3 本行業的資料洞察力
除了學習模型 資料分析師還需要補充行業相關的知識 這樣才能對業務上的資料有比較好的理解 這樣才能選擇和設計正確的模型去做分析決策
-
3 # 愛資料的小司機
如題,作為一個研究生,你用Python寫演算法,我覺得你應該是想往大資料,人工智慧方面發展。
Python這些年隨著大資料人工智慧的大爆發也變得流行起來,你想再提升自己Python的水平,我覺得你可以從以下著手!
分散式計算框架sparkApache Spark是一個計算速度快,易用,支援複雜分析的大資料處理框架,大有取代mapreduce之勢。
Python雖說在機器學習和人工智慧方面有極好的應用,但是Python有一個大缺陷,不支援分散式計算,但是不要緊,spark提供了極好的Python介面Pyspark,藉助他,Python在分散式計算、流計算方面有了極大提高。
另外,spark的核心RDD彈性分散式資料集和Python中pandas中的DataFrame十分相似,可以十分方便的相互轉化。所以說spark讓Python有了分散式處理大資料集的能力。
web後端Python有十分多的強大的web後端框架,如Django,flask等,學習這這可以鞏固Python的基礎,又會使用到Python的高階用法,如裝飾器,類及魔法方法,資料庫等。
學習spark和web後端的優勢你不可能一直在單機上使用模型,你可能會在大資料框架和網站來部署模型,這需要你瞭解後端和分散式計算,學習這兩方面,既能提升Python水平,也能讓你在日後的大資料和人工智慧領域如虎添翼。
-
4 # Sapsoft地理資訊
確實當你學了Python的一段時間之後會有一陣不知道如何更快的提高自己的功力。其實Python也是語言的一種,雖然語法很簡單,但是內涵真的很豐富,招式非常的多。修煉武功我個人覺得分幾個層次:
第一招是語法:算是基本功,熟悉一門語言,語法是最核心也是最基礎的,你必須要熟練掌握.好像你學英語,詞彙肯定是要有一定的量的.
第二招資料結構:然後你的程式碼會越寫大,你肯定要考慮資料結構,比如你爬取一個網站,你有一堆資訊,你如何抽象出來設計最佳的資料模型,減少程式碼的複雜度.
第三招演算法:接著你繼續寫發現效能上需要優化了。比如處理百萬級的資料,處理大量的檔案的時候,要降低複雜度,對程序,執行緒間的排程,最佳化執行緒池的排程。
第四招設計模式:再往上走就需要架構,設計模式,提高自己額軟體匠藝了,這時候你的程式碼量數萬,幾十萬了你需要考慮用一些好的設計模式去封裝你的程式碼,隔離子系統,然後提高程式碼的健壯性和可擴充套件性。
忽然發現話題有點拉遠了,我們趕緊切回來,我覺得python語言跟其他語言一樣都是需要一個積累的過程,這個過程是不能省的,但是確實有一些方法可以縮短這個過程,好比楊過在寒冰玉床上練功,內功比一般人要增加的快一些,下面分享幾個我覺得比較好的方法(歡迎大家批評指正):
1.刷題也許很多同學會反感,刷題我又不是學生,刷什麼題啊,python有大量的精妙招式,你想靈活的運用必須大量做題,忽然覺得怎麼和高中學數學是一個路數啊,確實這是快速提高你功力的捷徑(沒有之一)
下面推薦一下我刷過的網站:
1)Project Euler是一個國外的網站,裡面的題目從簡單到複雜大概有500多個,有點像解數學題或者演算法題,提一個問題然後你計算一下,最後告訴一個答案填進去,就會告訴你對錯.很有意思,越往後越難.你可以線上看答對的人數,越往後人越來越少。
舉個簡單的題,比如:求200萬以內的所有質數的和.
2)LeetCode大名鼎鼎的LeetCode裡面有大量的500強的面試題和演算法題,要求也比較高,很多國內外的碼農在上面刷題。難度從easy到hard都有,而且覆蓋面極廣,需要你的綜合實力去答題。
最簡單的題比如字串的處理有的時候也要用到二分查詢,二叉樹,排序.我個人覺得看一些基礎的演算法書之後,刷題會好一點.有的時候考的不是程式設計,是你的智商。但是你可以看到別人的解決問題的思路,特別是一些常見的演算法題。
另外上面兩個網站都是英文的,話又說回來想學程式設計,英語是必須的。最新的計算機技術最厲害的文件基本都是英文的.
刷題刷一段時間就可以,切莫貪心,因為有些很難的題目做不出來,會很鬱悶的,會有很強的挫敗感~~畢竟人外有人,天外有天,我們刷題的目的只是為了熟練一些招式.
2.Stackoverflow國內的很多程式設計師以前都是喜歡上csdn,或者知乎,現在大家基本都上stackoverflow,我不是說前面兩個網站不好,只是適合的群體不一樣。
比如python裡面的一些問題,你百度一下發現很多回答都是類似的,不知道是不是互相複製,你很難有一些深入的針對性的解釋。
我現在習慣都上stackoverflow,stackoverflow所面向的問題更集中於程式設計開發方面.算是程式設計師中的知乎吧.而且裡面有國外很多大牛給你回答,而且回答的都是很有質量的,關鍵有的時候還會給你推薦一些好的書.讓你眼前一亮.(補充一下這個網站也是全英文的).
-
5 # 傳智播客
Python當中學到了演算法這個部分,我們就要考慮進階或者是提升。簡單的說一下,Python的進階流程:瞭解基本語法--->熟練使用常用的庫--->Pythonic--->高階玩法--->看透python的本質;
Python的使用範圍:Web Programming: Django, Pyramid, Bottle, Tornado, Flask, web2py
GUI Development: wxPython, tkInter, PyGtk, PyGObject, PyQt
Scientific and Numeric: SciPy, Pandas, IPython
Software Development: Buildbot, Trac, Roundup
System Administration: Ansible, Salt, OpenStack
可以從上述的使用範圍來選擇深入學習。在Python中文開發者社群可以看到,論壇當中有很多適合提升水平的文章和專案。
推薦書籍:英語水平過關的話建議看英文原版的,中文翻譯的會有寫偏差。這本書給出了很多程式碼的方法和規範。並且作者的理念是把程式碼當成寫文章。第一章開篇就是教我們程式碼的整潔;第二章的內容是體現本意的命名能讓人更容易理解和修改程式碼;後面還有函式、註釋、格式等等的;
如果只是要了解的話,看前面幾張就夠了。但是書中比較有價值的部分,在於進行重構的時候很多細小的步驟。看這本的話,網上也是有電子版本,並且在各大IT論壇當中有很多人寫讀書筆記。
提高算效率的技巧(1)想量化的操作(可以參考書籍《利用Python進行資料分析》)
(2)廣播機制(可以參考書籍《Deeplearning深度學習筆記》)
(3)多執行緒多程序
GIL(全域性直譯器鎖)它讓python的多執行緒無法充分利用多核的優勢,但是對於I/O操作頻繁的程式,利用多執行緒帶來的優勢還是非常明顯的。
-
6 # 匿名使用者623
大方向來說,Python的用處一個是開發後端,Django Flask Tornado這些框架常規的框架,還有Sunic這樣小眾的,
再一個就是資料科學,從最開頭的網路爬蟲,各種網站的資料抓取 抓到之後可以賣資料,也可以構建自己的資料集,再進一步就是資料分析,海量資料的應用啊 分析什麼的
最後就是AI,人工智慧領域
就像是練武功一樣,不同的語言終究是招式,一招一式皆有套路可循,演算法 資料結構這些才是內功
-
7 # Python視覺演算法
簡述:有四個數字,分別是:1、2、3、4
思考:能組成多少個互不相同且無重複數字的三位數?各是多少?
思路:建立一個函式,然後分別設定三個數i,j,k,它們的取值範圍都在1到4,並且三個數都不相同,輸出1*100+j*10+k,
原始碼如下
def main():
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=j and j!=k and k!=i:
print(int(i*100+j*10+k))
if __name__ == "__main__":
main()
回覆列表
除了用Python來寫演算法之外,還可以用Python來來做web開發,網路爬蟲,資料清洗,以及人工智慧等。
至於怎麼樣提高自己的Python水平?給自己規劃一條學習路線,然後進行系統的學習,然後出去工作或者是自己接一些專案來做,透過做專案的方式來提升自己,畢竟做專案是綜合知識的應用。
瞭解過“如鵬網”的Python學習路線,可以作為參考,基本上都是慕名而去的。
1、Python基礎
2、資料庫開發
3、web前端
4、Python web開發及企業專案實戰
5、Linux
6、NoSQL
7、資料視覺化
8、網路爬蟲
9、人工智慧