全文共 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经典论文回顾
长按识别二维码可添加关注
读芯君爱你