做數據只知道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:機器之心 |