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

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