從 Python 遷移到 Wolfram 語(yǔ)言的經(jīng)驗(yàn)教訓(xùn)

發(fā)布:小火龍果 2023-07-10 16:38 閱讀:677
3KFw0(S/  
自從我開(kāi)始在 Wolfram 工作,我?guī)缀跻恢痹谑褂?Mathematica,不僅作為計(jì)算軟件,而且作為編寫(xiě)文檔的程序。我很快就在這兩種功能中熟練使用 Mathematica,但我還沒(méi)有真正將它用作Wolfram 語(yǔ)言的編程平臺(tái)。  X$:r  
kkfwICBI  
我在高中時(shí)發(fā)現(xiàn)了 Wolfram,我當(dāng)時(shí)——現(xiàn)在仍然如此!——對(duì) Wolfram|Alpha 的自然語(yǔ)言能力和知識(shí)庫(kù)著迷。這種興趣一直持續(xù)到大學(xué),在大學(xué)我接受了 Python 和 Java 的經(jīng)典培訓(xùn),但繼續(xù)將 Wolfram|Alpha 用于數(shù)學(xué)和化學(xué)。我的本科研究要求我學(xué)習(xí) bash 腳本和 Tcl,期間我繼續(xù)使用 Python。 ^+Ho#]  
29P vPR6  
在我攻讀博士學(xué)位的第一學(xué)期,我在研究生院的高級(jí)量子力學(xué)課程中接觸了 Mathematica。我的博士研究小組的研究科學(xué)家是一個(gè)強(qiáng)大的 Mathematica 用戶,建議我用他的 Mathematica 筆記本仔細(xì)檢查最初使用 Python 分析的結(jié)果。盡管我在攻讀博士學(xué)位期間多次接觸 Mathematica,但我從未想過(guò) Wolfram 語(yǔ)言可以與 Python 相媲美,直到我開(kāi)始在 Wolfram 工作時(shí)才意識(shí)到它可以用于“實(shí)際”編程。 n{oRmw-  
'\yp}r'u  
所以一個(gè)星期六,我坐在我的電腦前,通過(guò)重寫(xiě)我本科計(jì)算機(jī)導(dǎo)論課程的作業(yè)來(lái)弄清楚 Wolfram 語(yǔ)言的功能。我可以在 Wolfram 語(yǔ)言中快速鏡像我的本科 Python 代碼,但最終學(xué)到了兩條非常重要的經(jīng)驗(yàn): |BrD:+  
Wolfram 語(yǔ)言在利用其優(yōu)勢(shì)編寫(xiě)的代碼而不是鏡像其他語(yǔ)言使用的編程風(fēng)格時(shí)效果最佳。 e_3KNQ`kA  
Wolfram 語(yǔ)言與其他語(yǔ)言相比具有優(yōu)勢(shì),因?yàn)樗鼉?nèi)置了對(duì)動(dòng)態(tài)、真實(shí)世界數(shù)據(jù)的訪問(wèn)。 r?Y+TtF\e  
NPjh2 AJm  
我的第一個(gè)Python項(xiàng)目
&^WJ:BvA|^  
iwb]mJUA  
作為一名本科生,我使用 Python 的第一個(gè)項(xiàng)目是編寫(xiě)蒙特卡羅模擬,該模擬基于一組先前的示例回報(bào)來(lái)估計(jì)簡(jiǎn)單的投資回報(bào)。 M XB fX  
在這個(gè)任務(wù)中,我們必須: TE+d?  
  • 用 Python 編寫(xiě)蒙特卡羅模擬
  • 將代碼的輸出導(dǎo)入 R
  • 在 R 中分析我們的模擬
  • 寫(xiě)一篇關(guān)于我們的模擬和結(jié)果的討論
-cW`qWbd  
WU oGIT'  
當(dāng)用 Wolfram 語(yǔ)言重做這個(gè)項(xiàng)目時(shí),我決定將 Python 配置為我的 Mathematica 包運(yùn)行。所以我按照這些說(shuō)明在 Mathematica 中配置 Python。這個(gè)過(guò)程讓我可以使用我的代碼并評(píng)估它的可比速度。 }2qmL$  
Wl3jbupu _  
現(xiàn)在,讓我?guī)瓿蛇@項(xiàng)任務(wù)。第一步是為 2004 年和 2014 年之間的投資回報(bào)率列表分配一個(gè)變量。這個(gè)任務(wù)對(duì)兩種編程語(yǔ)言都很簡(jiǎn)單,但在 Wolfram 語(yǔ)言中,我們可以直接從 Wolfram 知識(shí)庫(kù)中提取實(shí)際的投資回報(bào)數(shù)據(jù): 9$0-UUCk  
iO^z7Y7  
a|B^%