背景:
作為一個(gè)氣象er,在本科時(shí)期一直使用Fortran處理數(shù)據(jù)配合GrADs繪制圖像蛾魄,研究生期間改為MATLAB處理數(shù)據(jù)配合NCL繪制空間場(chǎng)+Origin繪制時(shí)間場(chǎng)。由于NCL在去年已經(jīng)停止了更新,Python在機(jī)器學(xué)習(xí)和AI的背景下特別火滴须,其能調(diào)用MATLAB舌狗、CDO、NCO等軟件進(jìn)行混合編程的能力打動(dòng)了我扔水。于是痛侍,我覺(jué)得背向NCL、面向Python魔市。
環(huán)境配置
這里我參考并且向@摸魚(yú)黑 大佬請(qǐng)教了很多知識(shí)主届,這里再次感謝一下大佬對(duì)于萌新的耐心指點(diǎn)。我在大佬的文章中第一次接觸了jupyter notebook待德,由于剛開(kāi)始安裝設(shè)計(jì)到conda環(huán)境的理解君丁,第一天我便在安裝conda的路上一直折騰著,后來(lái)通過(guò)修改環(huán)境源解決了無(wú)法連接的問(wèn)題将宪,順利安裝好了Python3.7 環(huán)境和jupyter notebook绘闷。這里大佬也給了我很多指點(diǎn),并且讓我理清了思路较坛,再次感謝印蔗。
Python的使用感受
初極狹、才通人
剛開(kāi)始使用Python的時(shí)候還是有點(diǎn)吃力丑勤,首先在數(shù)據(jù)計(jì)算上不如MATLAB一樣可以直接使用函數(shù)华嘹,Python通過(guò)Import的方式導(dǎo)入各種各樣的包和庫(kù)來(lái)統(tǒng)一配置,這一點(diǎn)有點(diǎn)像MATLAB的包一樣法竞。但不同的是Python的包使用Conda來(lái)安裝特別方便除呵,直接解決了各種包通過(guò)Pip安裝時(shí)會(huì)互相打架或者版本高低的問(wèn)題,這一點(diǎn)十分方便爪喘。
Python的語(yǔ)法其實(shí)有點(diǎn)像C++颜曾,但因?yàn)楹芏嗄瓴挥肅++,剛開(kāi)始從MATLAB轉(zhuǎn)過(guò)來(lái)處理數(shù)據(jù)還是有點(diǎn)懵逼秉剑,幸虧直接接觸過(guò)NCL泛豪,不然每次數(shù)據(jù)從0還是1開(kāi)始索引都要想半天。
復(fù)行數(shù)十步侦鹏,豁然開(kāi)朗
一開(kāi)始接觸Python還是通過(guò)學(xué)習(xí)@摸魚(yú)黑 大佬寫(xiě)的教程诡曙,這讓我進(jìn)步很快,在國(guó)外的stack論壇上也是高手如云略水,討論激烈价卤。Python讓NCL連尾氣都吃不到的高明之處就在于Python打通了多學(xué)科的融合,通過(guò)谷歌可以輕松搜索到你想要的東西和你遇到的問(wèn)題如何解決渊涝。這里不得不提一下百度了慎璧,搜索下來(lái)都是各種廣告…………
Python的開(kāi)源的優(yōu)點(diǎn)太過(guò)于明顯床嫌,現(xiàn)在NCL也有了適配Python的包(PyNGL),以后基本一個(gè)Python也就夠了胸私。
最后說(shuō)一下遺憾
之前用MATLAB處理大型數(shù)據(jù)時(shí)因?yàn)榭梢源蜷_(kāi)并行運(yùn)算厌处,總體運(yùn)算速度雖然不如Fortran那么快,但是考慮到編程時(shí)總體時(shí)間也還能接受岁疼。
Python的話有一個(gè)奇怪的地方就是CPU占用一直很低阔涉,只25%上下,導(dǎo)致速度拉夸捷绒,并且我也沒(méi)找到如何在Linux中開(kāi)啟并行計(jì)算的方法瑰排,所以計(jì)算速度慢也算美中不足的一個(gè)地方吧。
總結(jié)
Python真香