python中向量怎么表示 Python語(yǔ)言其實(shí)很慢,為什么機(jī)器學(xué)習(xí)這種快速算法步驟通常還是用呢?
Python語(yǔ)言其實(shí)很慢,為什么機(jī)器學(xué)習(xí)這種快速算法步驟通常還是用呢?對(duì)于用過(guò)幾種開發(fā)語(yǔ)言(java,c#,nodejs,erlang),而后轉(zhuǎn)Python做機(jī)器學(xué)習(xí)的人,我說(shuō)說(shuō)我的看法。首先,大家說(shuō)
Python語(yǔ)言其實(shí)很慢,為什么機(jī)器學(xué)習(xí)這種快速算法步驟通常還是用呢?
對(duì)于用過(guò)幾種開發(fā)語(yǔ)言(java,c#,nodejs,erlang),而后轉(zhuǎn)Python做機(jī)器學(xué)習(xí)的人,我說(shuō)說(shuō)我的看法。
首先,大家說(shuō)python慢是真的嗎?我的回答是真的。非常慢,for循環(huán)比cpp慢兩個(gè)數(shù)量級(jí)。
那為什么還用Python?假如我們遍歷過(guò)億的數(shù)據(jù),兩個(gè)數(shù)量級(jí)的差異是無(wú)法接受的。但如果我們用python做最上層的邏輯,把上億數(shù)據(jù)進(jìn)行分塊,python只循環(huán)十幾次,剩下扔給cpu和gpu。那么兩個(gè)數(shù)量級(jí)是否就無(wú)所謂了呢?1毫秒和100毫秒在整個(gè)系統(tǒng)中真的無(wú)所謂了。
python最大的優(yōu)勢(shì)在于,可以非常非常優(yōu)雅的把數(shù)據(jù)扔給高效的c,cuda去做計(jì)算。numpy,pandas,numba這些優(yōu)秀的開源庫(kù)可以非常方便的高效的處理海量的數(shù)據(jù),借助zmq,celery等還可以做分布式計(jì)算,gevent借助系統(tǒng)的epoll進(jìn)行io優(yōu)化。所以,不需要花太多精力,就可以優(yōu)雅,高效的實(shí)現(xiàn)海量的數(shù)據(jù)處理,機(jī)器學(xué)習(xí)的任務(wù)。這是python火爆的原因。
想想,同樣的性能,代碼只有cpp或java的三分之一甚至更少,是不是很有誘惑力?
Python未來(lái)發(fā)展會(huì)怎么樣?
全棧,爬蟲,數(shù)據(jù)分析,人工智能。推薦去中公教育學(xué)習(xí)
python易于上手,你都用python做什么?
對(duì)于非程序員:
1.輔助工作,如處理excel,基本數(shù)據(jù)統(tǒng)計(jì),一些常規(guī)文件操作的批量處理等。
2.信息獲取,比如去某個(gè)網(wǎng)站批量獲取數(shù)據(jù),去某個(gè)系統(tǒng)批量獲取查詢結(jié)果。
3.數(shù)據(jù)分析,數(shù)據(jù)分析,可視化顯示等
對(duì)于程序員:
1.做網(wǎng)站和系統(tǒng),比如豆瓣網(wǎng)
2.數(shù)據(jù)挖掘,比如輿情分析
3.人工智能建模等
學(xué)Python一定要會(huì)算法嗎?
剛開始入門時(shí),不是必須學(xué)好算法的。但是隨著技術(shù)的深入,算法還是需要的,不然只能干點(diǎn)"搬磚"的活兒。
1、學(xué)好軟件開發(fā)離不開計(jì)算機(jī)理論基礎(chǔ),如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)技術(shù)、算法研究等。如果熱愛這門技術(shù),這些都是不問(wèn)題,先入門,這些慢慢的都可以補(bǔ)上。
2、關(guān)于算法,它是軟件開發(fā)的靈魂,沒(méi)有好的算法寫不出優(yōu)秀的程序。
3、如何學(xué)習(xí)算法,首先選取經(jīng)典算法教材。基礎(chǔ)的可以先從《數(shù)據(jù)結(jié)構(gòu)》學(xué)起,里面有些基礎(chǔ)算法,然后再去學(xué)專門的算法(其實(shí)把數(shù)據(jù)結(jié)構(gòu)范疇的算法學(xué)好,一般就夠用了)。還有網(wǎng)上有很多論壇,算法網(wǎng)站,為了吸引眼球 一般都做的淺顯易懂。還有大部分算法為c語(yǔ)言,但語(yǔ)言在算法層面都相通的,明白算法模型才是最重要的。
4、萬(wàn)事開頭難,只要入門,剩下的就是慢慢經(jīng)營(yíng)這門技術(shù)就行了。算法在實(shí)踐中學(xué)的最快也最牢固。
希望能幫到你