歡迎光臨
每天分享高質量文章

做資料只知道Excel?Jupyter Notebook也要學起來了

(點選上方快速關註並設定為星標,一起學Python)

來源:機器之心  作者:Semi Koen   連結:

https://mp.weixin.qq.com/s/Q-Tmb04iteoNCrl_8Tx9-w

Excel是交易員或金融從業者的生計之本,但在資料量較大或需要對資料進行深入挖掘時,Excel似乎就有點不夠用了。那麼,有什麼新的工具可以作為代替呢?本文作者給出的答案是Jupyter Notebooks。

如果你是一名交易員或者從事金融服務行業,那麼 Excel 就是你的生計之本。有了它,你可以分析價格和實時資料、評估交易組合、計算 VaR、執行回測等等;有了它,你就是資料透視表、公式、圖表甚至 VBA 和 PowerQuery 的專家。

然而,儘管你可以快速處理解決方案,但在你得到結果之前,電子錶格已經擴充套件到數十個標簽頁、上千行以及數不清的 VBA——這使得它的可讀性和可維護性遭到破壞。如果你膽敢用 F9 鍵掃清結果,那你就可以喝杯茶再多等一會兒了(前提還得是你的電腦在這期間沒有崩潰)!

很熟悉的場景吧?你大概已經在頻頻點頭了。

儘管 Excel 十分有用,但是對資料進行深入挖掘時,電子錶格並不能提供你想要的所有答案。下麵來看看 Excel 為什麼這麼火,又有哪些不足,最重要的是,為什麼應該用 Jupyter Notebook 來替代它成為你的強大資料分析工具。

天堂般的 Excel

使得 Excel 如此有價值的因素有多個,最值得註意的是它簡單卻強大的基於內建函式的響應式計算模型。電子錶格就像是一塊空畫布,「業餘程式員」可以在這上面用 Excel 專用語言(公式或者 VBA)進行程式設計。

儘管銀行為了執行業務關鍵流程部署了廣泛的 IT 系統,但以電子錶格形式存在的 Shadow IT 仍呈爆炸式增長,Shadow IT 補充了這些核心系統,併成為新業務計劃的預設工具。正是由於企業系統不夠靈活,無法適應動態金融環境所提出的快速上市要求,這才有了 Excel 來填補這一缺口。

Excel 可能很方便,但這是否意味著它就是正確的方法呢?

Excel 在企業中的角色需要重新定義了!

地獄般的 Excel 

想用電子錶格對大量資料進行高階響應式分析?那可就用錯工具了。

下麵是 Excel 高階使用者所面臨的一些問題:

  • 級聯錯誤:Excel 一個臭名昭著的問題是,錯誤會沿著列傳播,然後到整個表格,就好像雪球最終變成雪崩一樣。可怕的是,有時錯誤發現時已為時已晚。

  • 可擴充套件性:Excel 可處理的行列數是有限制的。隨著資料集以指數速度增加,電子錶格很快就會耗盡記憶體或消耗大量 CPU 資源,此時資料損壞的風險就會上升。

  • 效能:在複雜的工作簿中,修改一個數字可能會影響到數百個重覆計算,Excel 需要時間來處理每個數字。表格達到一定規模後不僅自身的速度會下降,還會影響到計算機上其它需要記憶體空間的應用程式的效能。

  • 測試:想要測試一個電子錶格的正確性幾乎是不可能的,更別提還要證明後續更改不會破壞任何其他內容。

  • 可追溯性/除錯:往往一個很小的修改就會顯著破壞你的複雜公式,從而使得問題難以識別和修複。

  • 全部包含:資料和計算全部包含在一個 Excel 檔案中,並且在本地計算機上執行。這就意味著協作受限、版本控製成為噩夢。此外,資料也只能是基於最近更新的靜態資料,而無法隨著條件變化而實時更新。

傳統軟體在數十年前已經解決了以上這些問題。

 

最後同樣重要的一個問題是:

操作風險:所有電子錶格最初都是小型/快速修複計算,但有些最終成為了永久性的企業級解決方案。它們提供了大量業務流程,但卻缺乏全域性譜系的可見性,從而使得許多財務、運營和監管流程的完整性受到威脅。

Hello,程式員;Bye-bye,交易員

傳統上,銀行將定量交易團隊分為定量交易員和定量開發者。前者提出交易想法,後者將這些想法轉化為可執行程式碼。如果你作為交易員的同時也熟悉程式設計,那就不再需要這種分工,這也為你提供了競爭優勢:不僅可以在銀行希望最佳化成本時避免被裁員,還可以將自己的交易模型付諸實踐,並利用時間優勢獲利。解放雙手,將枯燥的任務自動化,程式設計真的很有創造力!

在這個時代,更多的初級交易員都具備 uni 程式設計技能,因此想要保持職場競爭力就得要參與其中。

如何在 Python 和 Jupyter筆記本 上使用 Excel

那麼,當交易員和金融專家們發現 Excel 有諸多限制時(不是因為版本過低時),該如何解決呢?

答案是,學習 Python,並且使用 Jupyter 筆記本來做開發環境!

Python

Python 相當易於學習且用途廣泛,因此在金融社群中使用漸多,與 Excel 一樣,它現在是許多量化工具的先決條件。它沒 C++(或 Java)那麼複雜,也就意味著:1. 學習曲線沒那麼陡峭;2. 完成一個任務所需的程式碼量要少 80%-90%。

Python 的日益普及可以從大量支援交易員所需的各種工具庫看出來。

  • 資料的讀、寫、清洗、傳遞、分層/分割

  • 數學、統計、時間序列

  • 財務分析:交易和計量金融、市場資料分析、股票/衍生產品市場分析、彭博資料訪問、執行引擎、回測、風險分析等等

  • 機器學習工作流(如預測市場價格)

  • 繪圖和互動式視覺化

  • SQL 支援

  • 傳送郵件

  • 網頁抓取(如獲取線上市場資料)

  • 任務自動化/安排

  • Excel 整合(如果你確實非常喜歡 Excel)

Jupyter

同樣地,Jupyter Notebook 是一個基於 Web 的計算環境,能夠讓你創作包括以下內容的檔案:實時程式碼、圖形、小部件、豐富的敘述文字(包括連結、公式等)、圖片等。更具體地說,你能夠:

  • 在瀏覽器中編輯程式碼:自動語意高亮、縮排、tab 命令補全/內省(introspection)

  • 執行瀏覽器中的程式碼:在程式碼後附加其計算結果

它們提供了一種全包式的、獨立的運算記錄,從而使其代替 Excel 作為實時資料分析平臺。

The sweet spot

你可能會想:我還要再用 Excel 嗎?當然了。

在下麵這些情況下,電子錶格依然是你最好的選擇:

  • 正確性和精確性並非優先事項

  • 資料量不大(比如不需要可擴充套件性)

  • 無需實時更新

  • 使用 Excel 作為便簽薄快速整合原型

  • 無需長期維護

當你需要快速開發、驗證正確性和可擴充套件性,同時又要保持和 Excel 一樣的反應模型時,就是 Jupyter Notebook 大展身手之時。

不,Excel 並未淘汰,但 Jupyter Notebook 是更好的資料分析工具!

儘管我已經明確提到使用 Python/Jupyter 組合相較於 Excel 的一些實質性優點,在「地獄般的 Excel」小節中也隱晦地提到一些,我還是要把前十個優點串列如下:

  • 強大的資料操作 - 畢竟是資料科學家的工具箱!

  • 先進的視覺化功能- 不再是枯燥的圖示!

  • 更好的使用者體驗

  • 大資料處理 - 不再崩潰!

  • 效能管理 - 利用多處理器

  • 測試驅動的開發 - 考慮質量!

  • 開源可訪問性 - 它有一個庫

  • 錯誤追蹤

  • 自動化更加簡單

  • 自編檔案 - 不要低估它的價值!

從哪開始

我發現新進入這一領域可能令人生畏,但是程式設計並非學習語法,而是使用正確的語言和工具來解決問題:在本文中也就是 Python 和 Jupyter。

這裡提供兩個非常好的入門資源:

Think Python 免費電子書下載:http://greenteapress.com/thinkpython2/html/index.html

Jupyter Notebook 新手線上工具教程:https://www.dataquest.io/blog/jupyter-notebook-tutorial

重點是:Stay relevant!

結束語:

難以想象沒有電子錶格的企業界!

銀行開始發現 Python 可以在其關鍵工作負載中作為 Excel 的替代品。最近,Barclays 因其培訓交易員程式設計而成為新聞頭條。我想你也應該遵守這個範例,你不會失望的!

讓 Excel 去做它擅長的事,用 Python 和 Jupyter Notebook 來完成分析和自動化!

參考連結:https://towardsdatascience.com/jupyter-is-the-new-excel-a7a22f2fc13a

贊(0)

分享創造快樂