数据分析师的最佳编程工具组合:VSC + Jupyter + Docker

在日益繁忙的工作环境中,选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度,甚至让团队协作更加顺畅。然而不同的岗位对编程工具的要求也许并不一样,本文粗浅探讨数据分析师的最佳编程工具组合。不妥之处,欢迎指正。

一、关于Jupyter Notebook:优势与困惑

优势

数据分析师编程的最佳语言是Python,而配套的最佳编程工具无疑是Jupyter Notebook。究其原因,主要是因为它有如下特点:

1. 按单元运行,边写代码边看结果。对数据分析师来说,基本上每个程序的第一单元的最后一句话总是df.head()😄。因为在装载数据后,首先就是想看一下数据长啥样。Jupyter按单元运行的特点,就让我们达到了这个目的。当然,远不止第一个单元,后面随时都会看看中间结果或者部分结果。其它编程平台很难做到这一点。

写代码前先看看数据长相
边写代码边看结果的另一个好处是随时可以修改写错的代码。这代替了繁琐的Debug过程,或者说让Debug过程变得更有趣。

当然,按单元运行的好处还远不止于此。例如我们有一个程序,先做数据清洗,接着做计算。因为数据量较大,数据清洗和准备花了20分钟,但是计算中有一个小小的Bug,那么这次调试就浪费了20分钟。而按单元运行,则在消除Bug的时候,前面的数据清洗工作单元不必再次运行,只需要修改计算单元,即可重新运行计算部分。这样就大大提高了编程和调试效率。

2. 直接显示图表,看图说话更高效。一图胜千言,可视化是数据分析的一个重要工作。一边写程序,一边把数据用图表形式展现出来,不仅让工作更有趣,同时也帮助数据分析师思考。

在这里插入图片描述

3. 图文码混编,写完程序直接提交报告。Jupyter Notebook的单元格分为两种,或为Code,或为Markdown,可以任意选择。这种混编模式,让数据分析师的工作异常有趣而高效。一方面,你可以把程序分段,并把调试完成的部分隐藏起来,集中精力在未完成的部分;另一方面,当编程和调试工作完成的时候,差不多也就是你的Report也完成的时候了。

图、文、码混编的方式,还非常有利于协同工作。例如,由于Markdown支持Latex,所以你可以在代码文件中先把复杂的数学公式写清楚,然后再写代码。这样,代码中即使不写注释或者只是非常简单的注释,其他人也很容易看懂。

在这里插入图片描述
困惑

Jupyter Notebook 本身不是一个编程平台,而是一种文件格式而已。但它同时也是一种编程方式,一种编程风格。

支持这种文件格式或者说这种编程方式的平台很多。除了官方系统,最有名的是Google Colab,另外Deepnote也不错,而Anaconda最近也提供了类似的在线编程平台。那么,选哪个最合适呢?

坦率地说,官方系统并不是很好用。需要下载和安装、配置,每次需要先启动服务,然后到浏览器界面使用。每次想到要写个小代码,总觉得有些小啰嗦。界面也不是很漂亮,文件管理也有点儿拉胯。好处是离线使用,自主可控。

Colab是良心产品,在线免费使用,很美观,功能强大,不付费也能用得很爽;但在文件管理方面让人烦心。它还有其它致命问题,懂的人都懂。

Deepnote文件管理做得比Colab好,功能更强大,然而不付费的话,时不时因为资源被别人抢占而断线,着实让人感到有点儿恶心。

Anaconda的呢?太新,我甚至感觉还不稳定。再说看上去跟官方平台本地安装的效果也差不多,功能和界面没有太多吸引人的地方。

总的来说各有各的好处,各有各的问题。所以我们应该选择哪个?

好吧,答案揭晓:最好的选择是VS Code。

二、关于VS Code:插件的威力

VS Code其实是蛮新的编程平台,三年前我用的时候感觉问题还蛮多,不太满意。所以那时候一直在Colab、Pycharm、本机官方Jupyter之间徘徊。

但VSC现在已经非常成熟好用了,尤其是其丰富的插件功能。鉴于VSC已经非常流行,它的基本用法和各种好处我就不啰嗦了,这里只讲几个插件。

VSC的插件功能非常强大,而使用起来非常轻松简单,基本上是“即插即用”。

什么意思呢?比如对于Jupyter插件,你甚至不用去找它;你只要在VSC里打开或新建一个目录,新建一个.ipynb文件,写上你的代码,要测试的话最最简单就是写上2 + 3这样一句话就可以了,点击运行,选择Python环境(当然最好是虚拟环境哈,下面再讲),系统直接就问你要不要装ipykernel(也是是Jupyter Notebook的内核),就像这样:

在这里插入图片描述
然后你只需要点击install,搞定!现在你直接就可以运行你的Jupyter Notebook代码了。(这个时候如果你去检查VSC的插件,就会发现实际上相关的Jupyter插件都已经帮你装好。)

总的来说在VSC里用Jupyter Notebook就是爽爆天。稳定可靠,界面美观,使用简便,文件管理也非常到位。总之我采用这样的搭配后,就是爱不释手了。目前这种组合是我工作中的绝对主力装备。

说到插件,VSC里面的Python Environment Manager也是非常好用。装好这个插件后,VSC左侧工具栏会出现一个蟒蛇图标,对于创建和管理Virtual Environment的工作来说,点击这个图标进去就可以完成了。

除了Jupyter Notebook插件和Environment Manager插件,最后一个你需要的重要插件就是下面我要讲的,Docker插件了。

三、关于Docker:为什么很重要?

数据分析师可能经常会遇到前人做过的某个项目,代码就在那里,你很想复制黏贴,然而它依赖于某个老版本的Python、某个老版本的Library,甚至该项目只能在Linux上运行,而你只有一台老破小的Mac。

这跟软件工程师不一样。软件工程师对于老的项目,必须要搬迁到新的平台上进行修正调试。假如你有一个软件只能在WINDOWS10上运行,而在WINDOWS11上有问题,你的老板一定不会放过你。当然,你的开发环境,老板一定会花钱的。

然而数据分析师既没必要、往往也没有资源去解决这个问题。数据分析师不挑食,还是你的老破小Mac就可以了;额外需要的只是一个Docker,在Docker容器里能够运行前辈的代码、针对特定的数据能得到合适的结果就可以了。这不是说数据分析师永远不需要对前人的代码进行移植,只是说很多情况下不必要浪费这个时间精力和资源,尤其是是项目前期。等项目得到验证,需要大规模部署的时候,再去落实资源和做必要的移植修正不迟。

Docker相当于虚拟机,但比虚拟机简单好用得多:

  • 安装远比虚拟机简单,且免费
  • 占用资源远比虚拟机少,你一个机器装好多个镜像(image)、好多个容器(container)都没问题
  • Docker的image镜像,可能是安装了相关环境、甚至包括了代码的,去Docker Hub上拿来用就好了

不过一般说来,Docker镜像所生成的“虚拟机”——也就是容器,性质也像虚拟机一样,是有相当的独立性的,所以你要在里面编程,就有点儿困难。比如光是文件传来传去就有点儿费事儿。

然而,VSC的Docker插件,让这事儿一下子就变得简单无奇了。

假定你已经安装了Docker,并下载了你需要的镜像,现在请你打开Docker,启动一个container。然后在VSC里点击Docker插件图标,就可以看到已经激活的container;右键点击它,选择Attach Visual Studio Code,立刻就会得到一个新的VSC窗口,然后你就可以在这个container里选择目录、创建文件,并愉快地写代码了,跟在本机VSC里玩耍基本没有区别。

如果你的container是来自Ubuntu 12.4的镜像,里面装的是Python 3.6版本,你就妥妥地回到了从前,另一个时空。运气好的话,里面连前辈分享的项目代码也有,直接Run就完事儿了。这跟你本机是MacOS系统还是Windows系统,装的是Python 3.12还是3.10,完全没有关系。

在这里插入图片描述
然后你还可以直接把本机的代码文件或数据文件,直接拖到这个VSC窗口的文件目录里,相当于复制本机文件了。感觉就是本机的另一个文件夹,操作非常方便,但它却位于不同的时空——不同的操作系统,不同的Python版本。

甚至,现在不是流行GPU嘛,如果你本机没有GPU,你可以安装一个模拟GPU的镜像,这样你就有100%免费且自主可控的GPU玩耍了(当然很慢哈)。

反过来,如果你有重要成果结题了,也可以做成image分享,让同行收益,让后辈享福。

Docker还有很多好处,我就不一一道来了。知道的都知道,不知道的值得学一下。

小结

以上就是对于数据分析师的编程平台和工具的心得。

VSC + Jupyter + Docker,个个都是简化工作、增加效率的利器,融合起来就是编程神器了。

欢迎拍砖,也欢迎收藏点赞哦😄

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值