全文共 2955 字,預計學習時長 6 分鐘
今天本文將介紹?“Grid studio”——一個基于網絡的電子表格應用程序,集Python編程語言之大成。
用Grid studio著手解決的主要問題是散亂的工作流,這是進行數據科學項目,在例如R studio和Excel等多個工具間來回操作時所經歷的。
無數次導出CSV文件,行數過高導致應用程序窗口凍結,或是想要直截了當地做一些事(比如閱讀一個JSON文件)……很多人都受夠這些了。現存的工具無法提供高效產出的環境和相關的工作流。
這就是滿足數據科學需求,建立一個能將工作流集合到一個簡單、現代化并易于操作的應用程序中的工具的原因。
程序如何工作?
Grid studio是一個基于網頁的應用程序,看起來和普通的電子表格程序十分相似,比如 Google Sheets和Microsoft Excel。然而,其殺手锏就是Python語言的深度集成。
以表格形式瀏覽數據并直接處理數據,這對任何一個使用過計算機的人來說幾乎都輕而易舉。將簡單的用戶界面和完全成熟的編程語言的強大功能結合起來,比如 Python,的確會使其脫穎而出。用Python寫腳本是盡可能簡單的方式:只要寫下少量代碼行,然后直接執行就行。
核心集成:表格讀寫
Python集成的核心是電子表格的讀寫接口,這是在Python中表格數據與數據間的高性能連接。
像這樣簡單地編寫表格:
sheet("A1:A3", [1, 2, 3])
并像這樣讀取表格:
my_matrix = sheet("A1:A3")
通過這種簡單而有用的函數,就可以直接讀寫表格,從而實現數據輸入、抽取、可視化等更多目標的自動化操作。
編寫自定義電子表格函數
讀寫可以通過一個簡單的借口賦予用戶很大的靈活性,同時,在電子表格中,有時也對編寫能直接調用的自定義函數起了很大的作用。
像AVERAGE, SUM, IF之類的常用電子表格函數已經可以通過系統默認獲取。可如果需要更多的函數該怎么辦?
直接寫下需要的函數!
def UPPERCASE(a):
? ? return str(a).uppercase()
現在在電子表格中調用該函數,就像其他常規函數一樣。
利用Python的生態系統
通過利用Python生態系統的功能,可以立刻獲取最先進的數據科學工具:
這樣就可以為數據建模輕易獲取強大的模型,例如 linear regression 和 SVMs。
Docker運行時
該應用程序在Docker容器中運行,這個容器可使用戶輕而易舉地訪問完全打包好的隔離的UNIX環境(甚至在Windows中),其中一切都準備就緒:Python, scikit-learn, numpa, pandas, terminal, wget, zip等等。
這使得安裝 Grid studio 和下載預生成的 docker 圖像,執行單一命令一樣容易。
數據可視化
數據科學中的一項普通任務就是對數據進行可視化處理。考慮到其重要性,Grid studio 通過集合交互式繪圖程序庫 Plotly.js 和Python 的標準Matploylib,對先進的繪圖具有內置支持,在向量銳化模式中為用戶提供了先進的繪圖功能。
為了使你了解如何使用 Grid studio 的特殊功能,本文將展示它們是如何與具體實例相結合的。
實例:網頁擦除
這個例子向你展示了擁有 Python 的能力唾手可得。那些本來需要在工具和文件間進行前后轉換的東西現在可以被集成到單一的腳本中。
在上圖中,你能夠了解到一個簡短的腳本是如何輕松從黑客新聞 (Hacker News) 上將新聞直接置入表格中的。來源: scrape.py
實例:估算正常的分布
這個例子展示了一種有些愚蠢的正常分布的估算情形,它在用 Plotly.js 可視化后很逼真。你能夠在此處看到交互式繪圖如何使人了解正在發生的情況。
來源:estimate_normal.py
如何使用?
本地安裝 Grid studio 很簡單:(確保已安裝 Docker)
1. 使用以下命令復制倉庫:
git clone https://github.com/ricklamers/gridstudio
2. 使用以下命令執行 bash 腳本(在Windows上使用e.g. Git Bash):
cd gridstudio && ./run.sh
3. 在瀏覽器中打開 http://127.0.0.1:8080
為Windows使用的 Git Bash——Docker install
注意:如果出現了問題,不要擔心,打開 GitHub 上的issue,技術人員會盡快幫助/處理。
注意:在 Linux 上也許需要執行(替代第二步):
cd gridstudio && sudo ./run.sh
而運行 Docker 要求獲取權限。
公開+未來發展
如今 Grid studio 可以免費獲取并通過 GitHub repository 開放源碼。
現在已經有了一些關于為了改進 Grid studio而在之后要添加何種功能或特性的創意。然而,由于現在的項目開放源碼,在 GitHub 上進行追蹤,依據所有使用者找出哪個為最優先級是比較明智的做法。
——擴充電子表格中的“本地”函數數量(比如AVERAGE, SUM, IF 等),或許甚至和一些現存的打包程序,比如 Libre Office's Calc 或 Excel,獲得平等地位(和一致性)。
——當在電子表格中鍵入公式時,句法強調/運行工具提示
——在電子表格中進行高級排序和篩選
——使用 Plotly.js 為交互式繪圖創建桌面快捷開關
——更便捷地共享工作區/代碼
——實時協作形式(這一點或許很難實現)
——為插件/擴張進行一些應用程序接口/接口的分類
——將公式解析上升為真正的基于語法的解析
——Python 自動完成
——性能優化
——核心 Python /表格集成的穩健性(無字符/序列破壞)
開放源碼的原因
其實,目前有一些和 Grid studio 提供相似功能的項目。
首先,有一個叫xlwings 的開放源碼插件,它直接將Python 集成到 Microsoft Excel。 盡管它并沒有真正將電子表格和 Python 集成到一個單一的連貫產品,但在為用戶提供已經熟悉“真實”完全載入的 Excel 環境方面,還是具有優勢。
其次,Python 從IPython 進化到 Jupyter Notebooks 再到 JupyterLab,廣受大眾歡迎,并且著重于利用長形式 Notebooks 的可說明代碼,恰好為數據科學家提供了非常優秀的工作環境。然而,由于其直觀的行為,它缺少任何一種對剛入門的數據科學家都具有強大吸引力的電子表格功能形式。
總之,這些意味著要將 Grid studio 商業化的項目要和那些完全可以低價免費獲取的項目進行競爭。 不過,與其它相比,Grid studio 仍有其獨到之處等著你來發掘。
免費獲取Grid studio:https://github.com/ricklamers/gridstudio
留言 點贊 發個朋友圈
我們一起分享AI學習與發展的干貨
編譯組:鮑歆祎、余書敏
相關鏈接:
https://hackernoon.com/introducing-grid-studio-a-spreadsheet-app-with-python-to-make-data-science-easier-tdup38f7
如需轉載,請后臺留言,遵守轉載規范
推薦文章閱讀
ACL2018論文集50篇解讀
EMNLP2017論文集28篇論文解讀
2018年AI三大頂會中國學術成果全鏈接
ACL2017 論文集:34篇解讀干貨全在這里
10篇AAAI2017經典論文回顧
長按識別二維碼可添加關注
讀芯君愛你
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
