30

做数据只知道Excel?Jupyter Notebook也要学起来了

 5 years ago
source link: https://www.tuicool.com/articles/ZJfQnmE
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如果你是一名交易员或者从事金融服务行业,那么 Excel 就是你的生计之本。有了它,你可以分析价格和实时数据、评估交易组合、计算 VaR、执行回测等等;有了它,你就是数据透视表、公式、图表甚至 VBA 和 PowerQuery 的专家。

然而,尽管你可以快速处理解决方案,但在你得到结果之前,电子表格已经扩展到数十个标签页、上千行以及数不清的 VBA——这使得它的可读性和可维护性遭到破坏。如果你胆敢用 F9 键刷新结果,那你就可以喝杯茶再多等一会儿了(前提还得是你的电脑在这期间没有崩溃)!

很熟悉的场景吧?你大概已经在频频点头了。

尽管 Excel 十分有用,但是对数据进行深入挖掘时,电子表格并不能提供你想要的所有答案。下面来看看 Excel 为什么这么火,又有哪些不足,最重要的是,为什么应该用JupyterNotebook 来替代它成为你的强大 数据分析 工具。

天堂般的 Excel

使得 Excel 如此有价值的因素有多个,最值得注意的是它简单却强大的基于内置函数的响应式计算模型。电子表格就像是一块空画布,「业余程序员」可以在这上面用 Excel 专用语言(公式或者 VBA)进行编程。

尽管银行为了运行业务关键流程部署了广泛的 IT 系统,但以电子表格形式存在的 Shadow IT 仍呈爆炸式增长,Shadow IT 补充了这些核心系统,并成为新业务计划的默认工具。正是由于企业系统不够灵活,无法适应动态金融环境所提出的快速上市要求,这才有了 Excel 来填补这一缺口。

Excel 可能很方便,但这是否意味着它就是正确的方法呢?

Excel 在企业中的角色需要重新定义了!

地狱般的 Excel 

想用电子表格对大量数据进行高级响应式分析?那可就用错工具了。

下面是 Excel 高级用户所面临的一些问题:

  • 级联错误:Excel 一个臭名昭著的问题是,错误会沿着列传播,然后到整个表格,就好像雪球最终变成雪崩一样。可怕的是,有时错误发现时已为时已晚。

  • 可扩展性:Excel 可处理的行列数是有限制的。随着数据集以指数速度增加,电子表格很快就会耗尽内存或消耗大量 CPU 资源,此时数据损坏的风险就会上升。

  • 性能:在复杂的工作簿中,修改一个数字可能会影响到数百个重复计算,Excel 需要时间来处理每个数字。表格达到一定规模后不仅自身的速度会下降,还会影响到计算机上其它需要内存空间的应用程序的性能。

  • 测试:想要测试一个电子表格的正确性几乎是不可能的,更别提还要证明后续更改不会破坏任何其他内容。

  • 可追溯性/调试:往往一个很小的修改就会显著破坏你的复杂公式,从而使得问题难以识别和修复。

  • 全部包含:数据和计算全部包含在一个 Excel 文件中,并且在本地计算机上运行。这就意味着协作受限、版本控制成为噩梦。此外,数据也只能是基于最近更新的静态数据,而无法随着条件变化而实时更新。

传统软件在数十年前已经解决了以上这些问题。

最后同样重要的一个问题是:

操作风险:所有电子表格最初都是小型/快速修复计算,但有些最终成为了永久性的企业级解决方案。它们提供了大量业务流程,但却缺乏全局谱系的可见性,从而使得许多财务、运营和监管流程的完整性受到威胁。

VVbyEfj.jpg!web

Hello,程序员; Bye-bye,交易员

传统上,银行将定量交易团队分为定量交易员和定量开发者。前者提出交易想法,后者将这些想法转化为可执行代码。如果你作为交易员的同时也熟悉编程,那就不再需要这种分工,这也为你提供了竞争优势:不仅可以在银行希望优化成本时避免被裁员,还可以将自己的交易模型付诸实践,并利用时间优势获利。解放双手,将枯燥的任务自动化,编程真的很有创造力!

在这个时代,更多的初级交易员都具备 uni 编程技能,因此想要保持职场竞争力就得要参与其中。

如何在 Python 和Jupyterbi 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 作为实时数据分析平台。

e2qEnez.jpg!web

The sweet spot

你可能会想:我还要再用 Excel 吗?当然了。

在下面这些情况下,电子表格依然是你最好的选择:

  • 正确性和精确性并非优先事项

  • 数据量不大(比如不需要可扩展性)

  • 无需实时更新

  • 使用 Excel 作为便签薄快速整合原型

  • 无需长期维护

当你需要快速开发、验证正确性和可扩展性,同时又要保持和 Excel 一样的反应模型时,就是JupyterNotebook 大展身手之时。

不,Excel 并未淘汰,但JupyterNotebook 是更好的数据分析工具!

尽管我已经明确提到使用 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 和JupyterNotebook 来完成分析和自动化!

参考链接: https://towardsdatascience.com/jupyter-is-the-new-excel-a7a22f2fc13a


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK