當前位置:
首頁 > 知識 > 做數據只知道Excel?Jupyter Notebook也要學起來了

做數據只知道Excel?Jupyter Notebook也要學起來了

選自towardsdatascience

作者:Semi Koen

機器之心編譯

參與:胡曦月、張倩

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 bi ji ben 上使用 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

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

前瞻研究:醫學影像中人工智慧技術應用現狀及展望
新手如何發布第一個Python項目開源包?這裡有一份詳細指南

TAG:機器之心 |