全文共3246字,预计学习时长8分钟html
若是你从事的是商业交易或者在金融机构工做,Excel是必备技能。python
你能够用它分析价格及其余tick数据、评估投资组合、计算风险价值、进行过后检等等。你熟练掌握数据透视表、Excel公式、图表甚至是VBA和PowerQuery。这使你能够快速执行一个方案。程序员
可是在你意识到以前,电子表就会扩张成为几十个结构复杂的表格和混乱无序的VBA代码时,读懂和维护这些表格将变得极其困难。而且若是按下F9刷新的话,等待的时间甚至足够喝完一杯茶(若是这期间电脑还没崩溃的话)!编程
上面的陈述听起来是否是很熟悉?你恐怕正在疯狂点头。浏览器
尽管电子表格十分有用,但要用来分析数据的话,它并不能提供寻求的全部答案。让咱们看看Excel如此流行的缘由及其不足之处,以及最重要的使用Jupyter Notebook这一强大的分析工具来代替Excel的缘由。微信
咱们的目的是,让Excel作Excel擅长的事,把分析和自动化交给Python和Jupyter Notebook。网络
Excel的优点多线程
Excel有几大优点。最值得一提的就是带有内建函数的反应计算模型,它使得Excel简单而又强大。电子表就像一块空白的幕布。一个“业余程序员”可使用Excel的专用语言(也就是公式和VBA)在电子表中编写代码。机器学习
银行利用各式各样的信息技术系统来执行关键业务流程。然而有愈来愈多的影子IT以电子表格的形式出现,它们补充了核心信息系统的功能,并充当新的商业计划的默认工具。企业系统不够灵活,没法适应动态金融环境下产品从雏形到进入市场的时间,而Excel解决了这一问题!函数
尽管Excel很是便利,但它就是最合适的方法吗?
Excel在企业中扮演的角色应该被从新定义。
图片来源:unsplash.com/@mbaumi
Excel的劣势
在涉及大量数据的、高级的、响应式的分析过程当中,电子表格并不是合适的工具。
下面是某些Excel重度用户面临的问题:
· 级联错误:Excel臭名昭著的问题之一是错误可能会沿着列传播,最终波及整个电子表,就像一个雪球引发一场雪灾。可怕的是,有些错误发现时已经没法补救。有很多这样形成重大损失的案例。
· 可扩展性:Excel表格中的行列数量有限。处理规模呈指数级增加的数据集时,电子表将很快用尽存储空间或占用大部分的中央处理器。这种状况的出现将极大提高数据污染的风险。
· 功能:在复杂的工做表中,改变一个数字可能影响数以百计的重复计算。Excel须要花费时间来从新计算每个结果。当影响达到必定量级,不只电子表自己的运行会变得缓慢,其余全部须要占用存储空间的应用都会受到影响。
· 测试:电子表的正确性几乎不可测试,也难以证实后续更改没有形成其余影响。
· 可追踪性/排除故障:即便微小的变化也可能严重篡改复杂的公式。这样微小的改变极难找到和修复。
· 包含一切:数据和算式都存储在Excel文件内并在本地计算机上运行。这意味着合做受到限制,版本控制像噩梦通常困难。而且数据将在最后一次更新后保持不变,而不是随着状况变化实时更新。
传统软件早已在几十年前解决了上述全部问题。
最后一点,也是很重要的一点:
· 操做风险:全部的电子表最初都是小型的,易于维护的算式。可是有些电子表会变成永久的,企业级别的方案。它们被用于大量的业务流程,但因为没法看到数据的全貌,很难保证许多金融、运算和监管过程的完备性。
图片来源Courtesy: Pixabay
你好,程序员;再见,交易者
传统来讲,银行把定量交易团队分为定量分析交易者和定量分析开发者。前者提出想法,后者把这些想法写成可执行的代码。若是你既是一个交易者又是个专业的程序员,那么这种划分就再也不必要。这让你得到了竞争优点:一方面银行但愿尽量减小支出,从而下降了失业风险;另外一方面你能够把本身的交易模型投入实践,利用时间优点获取利益。一些单调的任务能够自动处理,这使你得到解放,并且编程实际上很是具备创造性!
这也是为了跟上时代。愈来愈多的年轻交易者具有在大学中学到的编程知识。因此若是想要保持就业竞争力,你也须要参与其中。
如何用Python和Jupyter Notebooks进行数据处理
对于意识到Excel局限性的交易者和金融专家来讲,如何解决这一问题?答案就是:学习使用Python和Jupyter Notebook。
Python
Python学起来很容易,而且功能丰富,所以在金融领域中获得愈来愈普遍的应用。现在它和Excel同样,是许多定量分析过程的必备工具。它没有C++(或者Java)那样复杂,这意味着python的学习曲线没有那么陡峭,并且完成任务所需的代码量减小到1/5甚至1/10。
Python的日渐流行明显地体如今大量的库中。这些库能够支持交易者所须要的几乎一切功能。
· 数据的读取、写入、清洗、删改和交叉分析。
· 数学序列、统计序列和时间序列。
· 金融分析:交易和定量金融、市场数据分析、股票/衍生市场分析、彭博数据访问、执行引擎、过后检验、风险分析等等。
· 机器学习渠道(好比预测市场价格)。
· 绘图以及一目了然的/交互性的可视化。
· SQL支持。
· 发送邮件。
· 网页数据抓取(好比从网上得到市场价格)。
· 任务的自动化/日程安排。
· 整合Excel(若是你真的很喜欢使用Excel)。
精准的函数库的总结(不重复的):https://financetrain.com/best-python-librariespackages-finance-financial-data-scientists
Jupyter
沿用上述思路,Jupyter Notebook是一个基于网络的编程环境。它可以管理各类文件。这些文件包含代码、图表、小插件、丰富的叙述文本(包括连接、等式等)以及图片。更具体来讲,能够:
· 借助自动句法高亮、缩进以及tab自动补全/检查等功能,在浏览器中编辑代码。
· 使用附加在代码上的计算结果,经过浏览器运行代码。
它为计算提供了总括式的、自含式的记录。这样Jupyter就能够代替Excel成为一个实时数据分析平台。
Courtesy: Python for Finance Tutorial
Excel VS Jupyter
因此你可能会想:
我还应该使用Excel吗?固然!电子表依然是处理下列状况时的最佳选择:
· 不那么注重正确性和准确性
· 数据规模不太大(对可扩展性没有要求)
· 不须要实时更新
· 把Excel做为草稿本,快速整合原型
· 不须要长期维护
你须要这样一个工具——它可以支持快速开发,保证正确性和可扩展性,与此同时拥有和Excel同样的反应模型。而这就是Jupyter Notebook提供的功能。
不须要抛弃Excel,可是Jupyter Notebook是更好的数据分析工具!
Python/Jupyter最重要的十个优势:
✔强大的数据操做能力——Python/Jupyter是数据科学家的工具箱!
✔先进的可视化能力——再也没有无聊的表格!
✔更好的用户体验
✔大规模数据集处理——不再会崩溃
✔运行管理——利用多线程处理
✔测试驱动开发——注重质量!
✔可开源——“有专门的库来处理这个问题!”
✔可追踪错误
✔更简单的自动化
✔自我文档化——不要低估这一功能的价值!
如何开始
进入这一领域的新人可能会被吓倒。可是编程并非学习语言的句法,而是学会使用正确的语言和工具——也就是Python和Jupyter——来解决问题。
这里有两个很是好的新手资源:
· Think Python: Free eBook Download
传送门:http://greenteapress.com/thinkpython2/html/index.html
· Jupyter Notebook for beginners: Online Tutorial
传送门:https://www.dataquest.io/blog/jupyter-notebook-tutorial
留言 点赞 关注
咱们一块儿分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一块儿讨论最新鲜的人工智能科技哦~)