python中向量怎么表示 Python語言其實很慢,為什么機器學習這種快速算法步驟通常還是用呢?
Python語言其實很慢,為什么機器學習這種快速算法步驟通常還是用呢?對于那些使用了多種開發(fā)語言(Java、C#、nodejs、Erlang)然后轉到Python進行機器學習的人,我想談談我的看法。首
Python語言其實很慢,為什么機器學習這種快速算法步驟通常還是用呢?
對于那些使用了多種開發(fā)語言(Java、C#、nodejs、Erlang)然后轉到Python進行機器學習的人,我想談談我的看法。
首先,Python真的很慢嗎?我的回答是真的。非常慢。for循環(huán)比CPP慢兩個數(shù)量級。
那么為什么要使用Python呢?如果我們遍歷超過一億個數(shù)據,兩個數(shù)量級的差異是不可接受的。但是,如果我們使用Python來執(zhí)行頂層邏輯并阻塞數(shù)以億計的數(shù)據,Python只會循環(huán)十幾次,剩下的就留給CPU和GPU了。所以兩個數(shù)量級無關緊要?一毫秒和100毫秒在整個系統(tǒng)中并不重要。
Python最大的優(yōu)點是它可以非常優(yōu)雅地將數(shù)據拋出到高效的C、CUDA中進行計算。Numpy、panda、numba這些優(yōu)秀的開源庫可以非常方便高效地處理海量數(shù)據,借助ZMQ、cell等還可以做分布式計算,gevent借助epoll系統(tǒng)IO優(yōu)化。因此,它不需要花費太多的精力就可以優(yōu)雅高效地完成海量數(shù)據處理和機器學習任務。這就是Python如此流行的原因。
好好想想。同樣的性能,代碼只有CPP或Java的三分之一或更少,不是很吸引人嗎?
Python能否進行大規(guī)模數(shù)值計算?
當您問這個問題時,您可能主要懷疑Python的性能。事實上,Python的許多更好的模塊都是用C語言編寫的,例如,numpy是一個常用的Python數(shù)值計算庫,它是用C語言實現(xiàn)的,而且計算機的配置也不像十年前那么低。今年,python掀起了一股依靠人工智能的浪潮。作為人工智能產品開發(fā)中最流行的編程語言,人工智能相關產品的開發(fā)自然離不開大數(shù)據的支持,因此Python能否進行大規(guī)模的數(shù)值計算,毋庸置疑。
為什么Python效率這么低,還這么火?
在許多情況下,性能不是瓶頸。大約80%的應用程序不需要高性能。