python基本是我目前工作、計算、資料探勘的唯一程式語言(除了符號計算用mathematica外)。當然,基本的python功能並不是很強大,但它勝在有巨量的第三方擴充套件庫。在選用python的第三方庫時,我都會經過仔細考慮,希望能挑選出最簡單的、最直觀的乙個(因為本人比較笨,太複雜用不了)。在資料處理方面,我用得最多的是numpy和pandas,這兩個絕對稱得上王者級別的庫,當然不能不提的是scipy,但我很少直接用它,一般會通過pandas間接呼叫了;視覺化方面不用說是matplotlib了;在建模方面,我會用keras,直接上深度學習模型,keras已經成為相當流行的深度學習框架了,如果做文字挖掘,通常還會用到jieba(分詞)、gensim(主題建模,包含了諸如word2vec之類的模型),機器學習庫還有流行的scikit learn,但我很少用;網路方面,寫爬蟲我用requests,這是個人性化的網路庫,如果寫**,我會用bottle,這是個單檔案版的迷你框架,一切由自己定義,當然,我也不會去寫什麼大型**,我就寫乙個簡單的的介面那樣而已;最後如果要並行的話,一般直接用multiprocessing。
tqdm的介紹用一張gif就夠了。
說白了,它就是用來顯示進度條的,很漂亮,使用很直觀(在迴圈體裡邊加個tqdm),而且基本不影響原程式效率。名副其實的「太強大美」了!這樣在寫執行時間很長的程式時,是該多麼舒服啊!
tqdm(list)方法可以傳入任意一種list,比如陣列
from tqdm import tqdm
for i in tqdm(range(1000)):
#do something
pass
或者string的陣列
for char in tqdm(["a", "b", "c", "d"]):
#do something
pass
trange(i) 是 tqdm(range(i)) 的簡單寫法
from tqdm import trange
for i in trange(100):
#do something
pass
在for迴圈外部初始化tqdm,可以列印其他資訊
pbar = tqdm(["a", "b", "c", "d"])
for char in pbar:
pbar.set_description("processing %s" % char)
正如它的名字,retry是用來實現重試的。很多時候我們都需要重試功能,比如寫爬蟲的時候,有時候就會出現網路問題導致爬取失敗,然後就需要重試了,一般我是這樣寫的(每隔兩秒重試一次,共5次):
import time
def do_something():
***for i in range(5):
try:
do_something()
break
except:
time.sleep(2)
這樣未免有些累贅。有了retry後,只需要。
from retry import retry
@retry(tries=5, delay=2)
def do_something():
***do_something()
也就是在函式的定義前,加一句@retry就行了。
python果然是絕對省心~
Python爬蟲基礎 兩個實用庫
用python學爬蟲最大的好處就是python有很多實用庫,免去了我們自己造輪子的環節,那麼找哪些輪子呢?python爬蟲有兩個比較實用的庫,requests和beautiful soup。我認為學好這兩個庫,python爬蟲也就學的差不多了。beautiful soup 是乙個可以從html或xm...
兩個python切換
安裝好後,使用activate啟用某個環境 activate python34 for windows source activate python34 for linux mac 啟用後,會發現terminal輸入的地方多了python34的字樣,實際上,此時系統做的事情就是把預設2.7環境從pa...
兩個 Python 的冷技巧
記得剛開始工作的時候,老大給我們上 c 基礎課,告訴我們字串字面量可以換行 如下 感覺真是如夢如幻。include int main int argc,char argv 輸出 hello world.後來在寫了很久的 python 以後,才知道 python 其實也可以的 t hello worl...