We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode 885: Python Polars: The Definitive Guide, with Jeroen Janssens and Thijs Nieuwdorp

885: Python Polars: The Definitive Guide, with Jeroen Janssens and Thijs Nieuwdorp

2025/5/6
logo of podcast Super Data Science: ML & AI Podcast with Jon Krohn

Super Data Science: ML & AI Podcast with Jon Krohn

AI Deep Dive Transcript
People
J
Jeroen Janssens
T
Thijs Nieuwdorp
Topics
Jeroen Janssens: 我在工作中偶然发现了Polars,并被它强大的性能和简洁的语法所吸引。我意识到Polars是一个非常有潜力的库,值得出一本书来介绍它。在写作过程中,我发现Polars的优势在于其高效的计算速度和对内存的有效利用,这使得它在处理大型数据集时具有显著的优势。此外,Polars的声明式编程风格也使得代码更易于阅读和维护。与Thijs合作编写这本书,我们能够互相补充,共同完成这项工作。我们也从实际项目中学习到了很多,并将这些经验融入到了书中。 在与Alliander的合作项目中,我们成功地将Polars应用于生产环境,并取得了显著的成果。通过将Pandas代码转换为Polars代码,我们成功地将内存使用量从500GB减少到40GB,并将处理速度提高了一倍。这充分证明了Polars在实际应用中的价值。 此外,我们还探索了Polars的数据可视化功能,并发现Great Tables包可以有效地对数据表格进行样式化,而无需修改底层数据。这使得我们可以创建更美观、更易于理解的数据可视化图表。 在与NVIDIA和Dell的合作中,我们对Polars的GPU加速性能进行了基准测试,结果表明Polars在GPU上的运行速度比在CPU上快得多。这进一步扩展了Polars的应用范围,使其能够处理更大规模的数据集。 Thijs Nieuwdorp: 我与Jeroen的写作风格互补,他擅长润色,我擅长起草。在写作过程中,我们不断学习和完善,并从实际项目中汲取经验。 在Alliander项目中,我们面临着处理大型数据集的挑战。通过使用Polars,我们成功地解决了这个问题,并显著提高了数据处理效率。Polars的优化器和引擎使得我们可以高效地处理数据,而无需过多关注底层细节。 在包管理方面,我们从Poetry转向了UV,因为它更快、更可靠、更容易使用。UV基于Rust,其性能优势显著,这使得我们可以快速地设置和拆卸环境,从而方便地进行基准测试。 在数据可视化方面,我们使用了Great Tables包,它可以有效地对数据表格进行样式化,而无需修改底层数据。这使得我们可以创建更美观、更易于理解的数据可视化图表。 与NVIDIA和Dell的合作,我们对Polars的GPU加速性能进行了基准测试,结果表明Polars在GPU上的运行速度比在CPU上快得多。这进一步扩展了Polars的应用范围,使其能够处理更大规模的数据集。

Deep Dive

Shownotes Transcript

在本期节目中,Jeroen Janssens和Thijs Nieuwdorp与Jon Krohn一起讨论了他们的著作《Python Polars:权威指南》,以及使用Polars的最佳实践,为什么Pandas用户正在转向Polars进行Python中的数据帧操作,以及该库如何将内存使用量和计算时间减少到Pandas的十分之一。收听本期节目,即可参与O'Reilly赠书活动!

(07:44) Jeroen和Thijs撰写《Python Polars:权威指南》的原因

(21:54) Polars的最佳实践

(25:55) Polars拥有众多用户的原因

(34:32) Great Tables包的优势

(51:06) Jeroen和Thijs与NVIDIA和戴尔合作撰写《Python Polars:权威指南》

<raw_text>0 这是第885期节目,嘉宾是Jeroen Janssens和Thijs Newdorp,他们是《Python Polars权威指南》的作者。本期节目由AWS最新的AI芯片Trainium2、对话式分析平台Adverity以及戴尔与NVIDIA合作的Dell AI Factory赞助播出。

欢迎收听Super Data Science播客,这是数据科学行业收听率最高的播客。每周,我们都会为您带来有趣且鼓舞人心的人物和理念,探索机器学习、人工智能和相关技术的尖端领域,这些技术正在使我们的世界变得更好。我是您的主持人John Krohn。感谢您今天的收听。现在,让我们化繁为简。

欢迎回到Super Data Science播客,这已经是连续第二周了,这很不寻常。这应该是第一次连续两周发生这种情况。我们今天的节目邀请了两位嘉宾。

我们的第一位嘉宾是Jeroen Janssens。他是Posit的高级开发者关系工程师。此前,他曾担任荷兰最大的数据和AI咨询公司Zomnia的高级机器学习工程师。他撰写了极具价值的O'Reilly书籍《命令行数据科学》,并拥有蒂尔堡大学机器学习博士学位。我们今天的第二位嘉宾是Thijs Noedorp,他领导着Zomnia的数据科学工作。

他拥有Radboud大学人工智能学位。对于我们的荷兰听众,我深表歉意。我肯定把每一个我试图念出的荷兰名字都念错了。Jeroen和Thijs今天来到节目中的原因是,他们是《Python Polars权威指南》的作者,这本书是几周前由O'Reilly出版的。

长期收听节目的听众会知道,当我邀请写过畅销书的嘉宾,特别是最近写书的嘉宾时,我经常会举办赠书活动。通常情况下,我会亲自管理这些赠书活动。但是,本周,Jeroen和Thijs提高了赌注。您不仅可以获得他们撰写的书籍《Python Polars》的免费实体书,他们还慷慨地从我手中接过了管理工作,以便他们可以亲笔签名并将您的实体书寄送给您,无论您身在世界何处。

这是免费的,并且是签名的,会寄送给您。因此,Jeroen和Thijs将赠送三本签名的《Python Polars》书籍。在5月11日(星期日)当天结束之前,请访问polarsguide.com/SDS。网址是polarsguide.com/SDS,参与抽奖,获得一本签名的《Python Polars》免费书籍。

当然,我们在节目说明中为您提供了链接,以便您可以轻松地做到这一点。

今天的节目将特别吸引动手实践的数据科学、机器学习和人工智能从业者,但Jeroen和Thijs都是极好的故事讲述者,坦率地说,也很幽默。因此,任何对数据和人工智能感兴趣的人都可以欣赏本期节目。在今天的节目中,Jeroen和Thijs详细介绍了为什么Pandas用户正在迅速转向Polars进行Python中的数据帧操作,O'Reilly在接受第五个关于Polars的书稿之前拒绝了四个书稿的内幕故事,

一个不起眼的GitHub拉取请求迫使整个章节被彻底重写的那一刻,以及之前与NVIDIA和戴尔合作的秘密,该合作揭示了Polars令人瞩目的GPU加速基准测试。好了,准备好收听这期充满欢笑的节目了吗?让我们开始吧。♪

Jeroen和Thijs,欢迎来到Super Data Science播客。你们在一起。我想,我以前从未有过这种情况吧?我一时想不起来以前是否同时邀请过两位嘉宾,但他们是在同一个地方。你们两位在哪里?谢谢John。很高兴再次来到这里。很高兴再次见到你。

我们正在荷兰鹿特丹打电话。很好。对于那些收听节目的听众,对于那些没有观看YouTube版本的人来说,那是Jeroen的声音。那是他的声音。

对于观看YouTube版本的人来说,他穿的是粉色衬衫。哦,还有他的嘴一直在动,声音是从他的脸上发出来的。但无论哪种方式更容易让您追踪。然后,穿着迷人且相配或互补的森林绿衬衫的是Tize Newdorp。Tize,你的声音听起来怎么样?非常感谢你邀请我,John。我的声音听起来是这样的。哦,很好。我……

如果你们其中一个人没有荷兰口音就好了,但没关系。我们只能这样做了。我们有口音?你是什么意思,我们有口音?真有趣。所以,Jeroen,你以前来过节目。你在2021年12月的第531期节目中出现过。那是我主持节目的第一年结束的时候。我们玩得很开心。

在那个播客中。这是一个很棒的节目,人们可以收听。但是Thijs,我理解正确吗?这是你第一次参加播客吗?是的。我以前从未做过播客。只是因为这本书越来越受欢迎,我们终于开始做营销了,我们从最好的开始。所以我不知道接下来该做什么。我很遗憾地告诉你,到目前为止,情况非常糟糕。这是一期糟糕的节目。它

太糟糕了。我们直接从我最害怕的事情开始,然后从那里分解,对吧?你最害怕的事情,是的,没错。我们将从你最害怕的事情开始,然后我们将继续讨论你最喜欢的啤酒。如果你能拿一杯的话,我认为这可能会让事情顺利进行。直到2025年2月,你们都在Zomia担任同事,Zomia是荷兰领先的数据和AI咨询公司。

也是开源数据帧库Polars的创建者。然后Jeroen,你最近在Posit找到了一份开发者关系的工作。似乎很多人都在转向Posit。现在那里有很多大人物。RStudio和其他许多优秀的开源工具的创建者。我们以前在Posit的节目中也讨论过,所以我们不需要过多地讨论这个问题。但是

但是我想在本期节目中讨论最多的是你们的书,一本全新的书,实际上在我们录制节目的同一天发布,也就是4月1日。所以现在这期节目在5月份上线了,希望它实际上又能买到了,因为现在,至少在世界上的许多地方,如果你想购买我们的嘉宾Jeroen和Tize今天撰写的《Python Polars权威指南》,你将无法买到

4月1日,因为它已经售罄了。但O'Reilly做得很好。他们进行按需印刷,因此他们应该能够很快解决这个问题。这不像许多其他出版商那样,可能需要几个月的时间才能完成,我不知道,许多出版公司都是以5000本为单位订购的,但我敢肯定O'Reilly可以按需印刷,这很酷。所以无论如何,这个问题很快就会解决。非常受欢迎的书,我很高兴邀请你们来到节目。

我们以前在播客中讨论过Polars。我们邀请过它的创建者Richie Fink。我们还邀请过Polars项目的另一位主要贡献者Marco Gorelli。但从那时起,Polars库已经发展壮大了很多。如果我们用GitHub星标的数量来衡量受欢迎程度的话,它即将超过Pandas的受欢迎程度。是的,现在它有了这本优秀的O'Reilly书籍,这要感谢你们两位。所以……

是什么让你们决定写这本书?这个过程是怎样的?哦,我必须告诉听众这件事,你们正在进行赠书活动。所以,我想我们会给他们到星期日的时间。你觉得到星期日怎么样?

对我来说听起来不错。是的,很好。所以有一个网址。你可以说网址是什么,以及免费赠书活动是什么。这与众不同,我们在节目中经常进行免费赠书活动,赠送实体书,但你们的赠书活动有一些我们以前从未做过的事情。所以我会让你们两位来告诉听众。是的,对于你们的听众,我们想赠送由我们两人签名的实体书。

因此,要获得一本,请访问Polars Guide.com/SDS,填写您的姓名和电子邮件地址,然后参加抽奖。然后在星期日之前,我们会通知您。即使您没有中奖,您仍然可以免费获得第一章。太棒了。这是一个非常酷的赠书活动。

我会鼓励更多的嘉宾这样做。所以你们俩都会签名。我想,如果你们在一起,那就更容易了。我说过三本吗?我不确定我是否说过。我认为你没有,但是,是的,三本。我们将赠送三本。很好。人们可以身处世界任何地方。任何地方。我们将负责邮寄。是的,太慷慨了。非常感谢你们这样做。所以是的,polarsguide.com/SDS。你们有直到星期日的时间。

提交您的信息参加抽奖,并获得由两位作者签名的《Python Polars权威指南》实体书。我们今天的嘉宾是Jeroen和Tize。超级,超级酷。好了。所以现在我们把这个话题说完了,告诉我们是什么原因让你们写这本书,以及这个过程是怎样的。是的。这是从你开始的,对吧?没错。所以让我们从起源故事开始吧。

我在2022年1月加入了Xomnia。是吗?是的?听起来他好像在问别人,但那是Jeroen在问他自己。听起来他好像在和我,也许和Tize进行对话。什么时候并不重要。所以当我开始的时候,我只是在认识办公室里的每个人,那里有一个家伙

非常专注地在他笔记本电脑后面工作。每个人都去吃午饭了,但他却一直在工作。后来我才知道,那是Richie Vink,Polars的创建者。我当时对Polars一无所知,但我还没有任务。我有一些时间来探索数据集,我决定尝试一下Polars。我立刻就被迷住了。

当然。我立刻就明白了,好吧,这太酷了。这值得写一本书。这将是一件大事。

但我已经知道了,因为我之前写过《命令行数据科学》,对吧?两次。两次,是的。我知道我再也不想独自写书了。所以我需要……这是你写了一次然后不小心烧掉它的悲惨故事吗……狗吃了他的作业。我希望如此。不,所以我需要另一个受害者,对吧?有人来分享痛苦。

然后是Thijs,就在那之后不久,我被分配到一个客户那里,那里有一个大型代码库,Thijs也在同一个团队工作。所以我们不仅是同事,我们还在同一个团队为同一个客户工作。所以我感觉,嘿,Thijs,他似乎很擅长这个。他喜欢写作。为什么我不问问他呢?

他的回答当然是肯定的。是的。所以我无论如何都与O'Reilly进行了一次会面,讨论我是否可以为他们做其他事情,也许是一个与命令行数据科学相关的视频课程。但那时我问他,嘿,你听说过Polars这个东西吗?

然后说,是的,是的,我们已经有四个提案了,但我们都拒绝了,我说,哦,哇,已经有四个提案了,所以……那时我知道我们必须写一个认真的提案,所以我们写了一个超过15页的提案,我们带来了所有我们可以带来的统计数据……

当然,到那时,O'Reilly犹豫地同意了。但几个月后,他们意识到,哦,等等。这实际上将是一件大事。我们现在想要这本书。他们开始感受到压力。开始询问,好吧,关于那个截止日期,一切顺利吗?是的。这真的很可怕,因为写书是,这是一种折磨。它

当我写《图解深度学习》时,那是我生命中最糟糕的经历。唯一能与之相比的是写博士论文。但是对于博士论文,压力没有那么大,因为只有两个人会读它。你的博士论文将由委员会进行审查,他们将是唯一阅读它的人。然后还有一件很有趣的事情,自从我完成博士学位以来,我交往过的几个女朋友,在她们非常兴奋地认识我的早期约会阶段,这种兴奋很快就会消失。但有一个非常短暂的窗口。不,但她们会在书架上看到它,然后她们会说,我要读这本书。而我会说,你不会。

你真的不会。它真的不好读。它是为世界上一个非常具体的利基群体设计的,你必须花很多年时间才能理解它。但是写像《图解深度学习》这样的书,我的想法是希望不止两个人会读它。

我不知道,我一直不知道你对这件事是否感觉不同,Jeroen,因为你之前已经写过几本书了。所以你可能觉得,你知道吗,我可以写一本畅销书。我知道这个过程,我知道该怎么做。但至少对我来说,我到目前为止只出版过那本书。对我来说,在我写这本书的整个过程中,我一直充满了深深的担忧,担心它出版后,每个人都会意识到我是一个骗子。我不知道我在说什么。

我不知道你是否也有过类似的经历。-是的,我理解这一点,尤其是在我完成博士论文后写的《命令行数据科学》第一版时。我当时处于这种状态,但在整个过程中,我确实感觉自己像个骗子,尤其是在每个人和他们的狗似乎对Linux和Unix以及使用哪些工具都有意见的情况下。所以很多意见

意见很多的人,这使得情况变得更糟。但到了第二版,我意识到,嘿,

你说畅销书?好吧,我不确定我们的书会不会成为畅销书。我很确定它不会,但是……Polars的书?我的意思是,它可能不会成为《纽约时报》畅销书,但我敢打赌,在亚马逊的一些类别中,它会是。也许。是的,亚马逊如何分配这些类别很有趣。数据库设计第一名。没错。儿童使用的图数据库执行。没错。

哦,哇。但我学到的是

我和Thijs,我知道Thijs,我们肯定可以写一本书,对吧?你不必什么都懂。很多人认为你必须是该领域的专家。不,那不是真的。你可能认为你是专家,但当你开始写作时,你会意识到你的知识有很多空白。那时你就会开始学习越来越多的关于这个主题的知识。

所以,当我们开始写《Python Polars》时,我很自信,只要我们领先一步,这肯定会有所帮助,我们稍后可以更多地讨论这一点,我们如何将其投入生产,

但你会在过程中弄清楚的。你把书投入生产了?不是把书投入生产,而是我们有……我认为我们的客户可能是……它可能是最早将Polars代码投入生产的公司之一。所以在Polars 1.0版本发布之前的一年多时间里,它就已经这样做了。所以,是的,所以……

相当自信。我想这里最大的收获是,当你开始写书时,你不必什么都懂。你会在过程中弄清楚的。是的,事实证明,冒名顶替综合征是写作过程的自然组成部分。

对Trainium 2感兴趣吗?这是AWS专门为大规模训练和推理而设计的最新AI芯片?每个Trainium 2实例都拥有20.8 petaflops的计算能力,但这才是真正令人兴奋的地方。新的Trainium 2 Ultra服务器结合了64个芯片,在一个节点中提供高达83 petaflops的巨大计算能力。与GPU替代方案相比,这些Trainium 2实例的价格性能提高了30%到40%。

Anthropic和Databricks等AI领域的巨头,以及Poolside等创新型初创公司,都与AWS合作,利用Trainium 2为其下一代AI项目提供动力。想看看Trainium 2能为您的AI工作负载做些什么吗?请查看节目说明中的链接。好了,现在回到节目。很好。而Tize,与像Yaron这样的暴君一起工作是什么感觉?是的。

你想让我离开房间吗?眨两次眼睛。没错。在我看来,这很自然。我认为我们很早就注意到,我们的写作风格是互补的,我只是开始把文字写在纸上,然后开始重组和移动它,并对其进行更精细的修改。

这源于我还在写论文的时候,我无法在纸上写任何东西,因为我总是对写下的东西评头论足,比如,“不,那不太对。”你可能会被困住,对吧?所以我学会了把东西写在纸上,它可能格式不正确,语义也不正确,没有你想要捕捉的细微差别,但最终它会让你到达你想要到达的地方。这就像前80%需要先完成,而那还不完美。

而Jeroen的一个优点是,他能够以一种非常有效的方式运用他的完美主义,他非常擅长完善阶段。所以当我为章节添加了一些内容后,他会过来移动一些东西,并说,“你考虑过这个吗?或者你不应该这样措辞吗?”这真的让眼睛一亮。从这个意义上说,他并非暴君,而是一位非常有效的完美主义者。

谢谢。这是一条细线。是的,确实有一条细线。我非常清楚,存在过度准备、过度思考这样的事情。当页面上已经有内容时,这真的很有帮助

例如,这可能是Thijs或我自己写的文字。每当我感到卡住时,我会用的一种技巧是,因为这是一本涉及大量代码的书,我会先编写所有代码单元,所有代码块,这样我就可以在过程中用文字填补空白。这是我可以在这里应用的几个技巧之一。

非常好。你认为还需要多久,写作才会完全……我的下一个问题有点像笑话,但它也是一个非常烦人的问题,我甚至后悔它会从我的嘴里说出来。我会问这个问题,因为我已经开始了,但我本来想问那个经典的问题。就像当我……

当我与朋友们一起出去喝酒时,比如,不是数据科学家或AI工程师、软件开发人员,但他们可能会收听播客。例如,我有一个朋友说,哦,你真幸运,你的书《图解深度学习》在ChatGPT时代之前就出版了,所以人们知道是你写的。然后,所以我想问这个愚蠢的问题,这是一个陈词滥调的问题,你不需要花太多时间来回答这个问题。我们可以进入一些,我们接下来会进入一些Polars的话题。但是,

你认为在可预见的未来,O'Reilly是否会仅仅向机器请求一个提案,它会创建一个15页的提案,然后说,你知道,就是这样。然后它开始写作。如果你想继续重复现有的知识,那么是的,使用随机鹦鹉是很棒的。但如果你想产生新的知识,那么我相信人类在这里是不可或缺的。

很好。很好的答案。这比我预期的要好得多,尤其是考虑到嘉宾的素质。嗯,无论如何,4月1日。嗯,我们在愚人节录制节目。嗯,

我想在我们录制节目的时候,夏威夷可能还是早上。很好,让我们谈谈Polars。我认为你们的书会成为畅销书,因为现在正处于Polars的时刻,正如我在本期节目开始时谈到的那样,受欢迎程度,至少就GitHub星标的数量而言,今年可能会超过Pandas的星标数量。

Richie Vink和Marco Gorelli去年在本播客中的节目在收听量和社交媒体反响方面都非常受欢迎。顺便说一句,如果人们感兴趣,

因为我们在策划本期节目的主题时非常小心。我们不会与Richie或Marco的节目中的Polars主题重叠。所以如果你想在听完这期节目后了解更多关于Polars的信息,你可以收听第827期(Richie)或第815期(Marco),或者两期都听。我的意思是,它们是,它们是精彩的节目。Jeroen和Tize一样,他们都是技术高手。所以我们和,你知道,这些都是互补的节目。嗯,

涵盖了该库的不同方面。但是的,非常受欢迎的节目,非常受欢迎的社交媒体反响。如果你们的书卖得很好,我一点也不会感到惊讶,每个人都喜欢薄煎饼。所以让我们谈谈语法。就像R的Tidyverse一样,你们现在在Posit工作,你们自己也

使用Polars,也有一种语法和命名约定,鼓励保持语义清晰度,这意味着当您稍后返回代码时,您不仅可以更好地理解代码,而且您正在与之合作的其他人也可以更容易地理解代码。在书中……

你们将Polars中的表达式比作食谱。所以具体来说,我将在这里阅读你们书中的一小段内容。它是,如果你把表达式想象成食谱,那么操作就是步骤,函数和方法就是厨师。那么,这种隐喻如何塑造您关于数据转换设计最佳实践的理念,以便交付干净、可读的管道,尤其是在大型协作项目中?一大段。

简短的答案是没有更多的括号。当你阅读Pandas代码时,里面有很多括号。在很多情况下,很难判断代码实际上在做什么。

因此,使用Polars,您采用了一种不同的方法,不仅包括这些表达式(它们确实是构建块,那些小的食谱),还包括使用表达式的部分,即在整个查询中。所以这几乎就像你在写一段话,对吧?回到写作,你正在写一段你想做的事情。这是一个逻辑……

你整个管道中的元素。这更容易理解。是的,我认为我一直最喜欢Polars的一点是它非常声明式的方法。所以在Pandas中,可能是

非常关注数据帧的特定部分中的特定操作,这使得很难跟踪引擎内部到底发生了什么。但是使用Polars,你声明你想要的结果。你只需要将具体的处理和优化留给引擎。这使得它更容易阅读。也许这是一个很好的时机,也可以澄清一下,我们非常感谢pandas。

我们并不是来抨击pandas的。这就是你有时在网上看到的,这些比较并没有以一种……优雅的方式进行。不是以优雅的方式进行。那不是我们。如果没有pandas,就不会有Polars。所以我们……

非常感谢Wes McKinney和他的团队所做的一切。-绝对的。-是的。-站在巨人的肩膀上,对吧?-Wes现在也是,所以Wes是Pandas库的创建者,对于那些还不是数据科学家的朋友们来说,你们可能不知道Pandas已经有一段时间了,至少十年了,

是处理数据帧的事实上的标准,数据帧是一种数据,就像你可以想象数据在电子表格中一样,所以在Excel之类的工具中,你可以有列来表示不同类型的数据,所以你不会仅仅局限于拥有数字矩阵,浮点值矩阵。例如,使用数据帧,你可以,类似于列名的这个想法,你可以有一列是字符串信息,比如公司名称,

另一列是数字信息,比如这些公司一年的收入是多少。所以十年或更长时间以来,Wes McKinney的Pandas库……

Wes McKinney的Pandas库一直是Python中处理数据帧的标准。它们非常重要,因为作为数据科学家或数据分析师,你经常会处理这种不同类型的数据。在Pandas中使用它们至关重要,但Polars已经起飞了

再次,就像薄煎饼一样。它最近突然出现。Richie领导了它的开发,Richie Fink。我意识到你们不……抨击pandas不好,但是为什么……

为什么这么多人今天转向Polars?即使是Wes McKinney本人也会提出的细微论点是什么?我认为当我们与Richie交谈时,在写书的过程中,我们与他交谈了很多次,塑造了他希望Polars如何工作的主要经验之一

他运行他的管道时遇到了一些挫折,仅仅20分钟后就遇到了一些麻烦,然后崩溃了。这不是你事先就能看到的。所以这是其中一件事,一种帮助他塑造Polars最终形态的经历。他还看到了Pandas工作方式中许多好的方面,他想把这些好的方面融入到Polars中。

但总的来说,Pandas 成为 Polars 和其他库(我认为像 Spark 一样)的一大灵感来源,无论好坏。尤其可以看出,Spark 的语法与 Polars 的最终结果非常相似。

还有其他元素,例如,Richie 使用 Rust 语言在 Polars 中实现的元素,因为它使它运行得如此流畅。是的,他在他的剧集中谈论了很多关于 Rust 的内容。酷。好吧,这让我们对你的书、Polars 以及人们今天为什么如此频繁地使用它进行 DataFrame 操作有了些许了解,而且越来越多。

在节目的早期,你提到了 Polars 的一个实际应用。也许,正如你所说,这是 Polars 有史以来第一个生产实例。我理解得对吗?那是 Alliander?我可能把它的发音弄错了。

是的,Alliander。它是一家荷兰的电网供应商。我相信,他们还为荷兰三分之一到一半地区的电力和天然气提供基础设施。因此,它是荷兰最大的公用事业公司。我甚至说不出来“荷兰”这个词。我的荷兰语发音有多糟糕。荷兰语。实际上更容易,不是吗?是的。

对我们来说是的。哦,这就是你说的。我很好奇。这些荷兰在哪里?我从未听说过这个国家。是的,所以告诉我们关于那个项目的情况,以及它是什么样的。事实上,了解一下在编写这本书和从事该项目方面是否有重叠之处会很有趣。编写一本关于 Polars 的书是否有助于实际应用?无论如何,这是一个有趣的问题。是的。是的。所以这里的故事起源是

Thijs 和我,我们都对 Polars 非常兴奋。我们正在写一本关于它的书。然后突然间,很明显,在 Alliander,我们需要加快管道速度。我们需要降低成本。我们需要处理更多的数据。

在当前状态下,这是不可能的。这不仅是 Python 和 pandas 的组合,还有 R 代码。所以它非常低效。给你一个概念,我们在一台拥有超过 700 吉字节 RAM 的单一 AWS 实例上运行它。

700 吉字节的 RAM。所以,是的,我们可以提供一个链接,其中包含更多关于此的背景故事以及一些实际数字。但我们非常兴奋,我们想,“嘿,让我们试试这个。让我们这样做。”起初,团队非常犹豫,对吧?我们有两个人,实际上是三个人。我们还有一位同事,三个人。

推广在 Xomnia 开发的 Polars。所以他们非常怀疑,这是可以理解的。所以为了说服他们,我们所做的是只处理一小段代码,一些唾手可得的成果,对其进行基准测试,将 Pandas 代码重新实现到 Polars 中,然后只显示数字。

到那时,他们立即相信了,对吧,这确实快得多,使用的内存也少得多。让我们试试这个。让我们通过翻译,逐段处理这个巨大的代码库,而不是一对一地翻译,因为你不能这样做。你真的必须考虑输入和输出,然后以惯用的方式进行操作,对吧?你不能只将 pandas 翻译成 Polars。

而且,你知道,我认为我们花了,嗯,什么,六个月?一年?我甚至不记得了。但最终我离开了那个客户,但当时有一个时刻,好吧,我们可以

我们可以现在摆脱 R 和 pandas 作为这个项目的依赖项。从那以后,它运行得很顺利。是的,绝对的。是的,我认为最终一开始工作的规模对于这项任务来说大约是 500 吉字节。

进行一次计算,我们将它缩小了,这既是实现 Polars 的结果,也是因为我们在重新调整项目中使用的代码结构时,我们将其从 500 吉字节缩小到 40 吉字节,这使得计算更容易得多。是的

所以你问题的第二部分是,好吧,这如何相互影响?写书和投入生产。而这正是,是的,这是一个完美的匹配,因为当你只是写作时

当你真正需要投入生产时,当你有一个真正的问题需要解决时,你也会开始注意到局限性,对吧?或者可能是前后不一致的地方或缺少功能。例如,

有这个带权重的随机抽样,对吧?这是你可以在 pandas 中做的事情。你只需要给它另一个列,指示抽样的权重。这可能是,甚至直到现在,Polars 还没有的东西。幸运的是,这是我们必须进行的一次临时分析。但在那时,你知道,Polars 能做什么和不能做什么就变得很清楚了。此外,

当你写作时,你开始从更高的层次看待事物。所以有时我们会注意到命名上的不一致或缺少方法。比如,“为什么没有 XOR 运算的内联运算符?”这是没有人会想到的事情。但是当你需要在你的书中添加一个表格时,

你需要填写所有部分,这时你就会开始注意到这些事情。所以我们能够在此过程中向 Polars 本身提交一些问题,甚至是一些拉取请求。

本期节目由 Adverity 赞助,Adverity 是一个集成数据平台,用于大规模连接、管理和使用您的数据。想象一下,能够像向同事提问一样向您的数据提问并立即获得答案。无需再挖掘仪表板、等待报告或处理复杂的 BI 工具,只需在您需要时获得您需要的见解。借助 Adverity 的 AI 驱动的对话式分析,营销人员终于可以用简单的英语与他们的数据对话,获得即时答案

做出更明智的决策,更轻松地进行协作,并将报告时间缩短一半。你会问什么问题?要了解更多信息,请查看节目说明或访问 www.adverity.com。网址是 A-D-V-E-R-I-T-Y.com。

非常酷。所以你实际上是在编写 Polars 书籍时、在从事咨询项目时、将 Polars 引入现实世界时、在内存占用方面获得巨大收益(你给出的 10 倍数字,500 吉字节的内存减少到 40 吉字节)时,都在影响库本身,这非常大。这绝对使处理数据更容易得多。

你是否碰巧有(如果你没有,也不要紧),但很高兴能得到 10 倍的内存改进,10 倍的改进。你是否知道计算时间的改进是多少?它也大约是 10 倍吗?我认为最终的计算时间,因为在此过程中,我们必须优化代码的原因之一是

我们为某个模拟运行的样本数量的要求应该达到 50 个样本。这就像利益相关者要求我们努力达到的目标。而 500 吉字节的实例已经有 25 个样本了。所以我们无法将其提高,因为它只会越来越高。最终,我们能够在与一开始进行 25 个样本相同的时间范围内完成这 50 个样本。酷。

非常好。我想从你的书中转向一个稍微不同的主题,但它与你刚才提到的关于改进代码库、改进 Polars 库以及它的灵活性和全部功能的想法有关。在你的书中,你介绍了一种使用名为 great_tables 的包来设置表格样式的方法。great_tables。但是,如果你要打出来,这个包是 great_tables。

在你的一个演讲中,你实际上提到表格在可视化中被低估了。那么,你能详细说明为什么创建了这个 great_tables 包,它有什么作用吗?是的,也许它相对于现有方法的优势是什么。事后看来,现在这个包存在了,对吧,great_tables,奇怪的是之前还没有这样的包。

因为表格无处不在,尤其是在人们使用 Excel 时。很多人真的很喜欢添加样式,以便将其呈现给利益相关者。添加一些颜色,使用

货币,等等。也许还有一些迷你图表,对吧?所以现在有了它,很明显应该有一个包来做这件事。所以 Rich,我不确定如何发音他的姓,Great Tables 的创建者 Rich Ion,我把它弄错了。

但我确实认识共同创建者。好吧,他们都是我的同事。我应该知道,但我只是叫他们 Rich 和 Michael Chow。很棒的人。你也应该让他们参加节目。他们创建了 Great Tables 包。就在几天前,我看到有人发布了一篇关于 Polars 的帖子,提倡或实际上建议,好吧,在呈现货币时添加美元符号是有用的。

但他所做的是,他实际上正在更改底层数据。我想,“等等,这不是正确的方法。你想改变它的表示方式,对吧?你需要在它上面添加一层。这就是 great_tables 可以提供的。你不会为了格式化而将这些浮点数或整数更改为字符串。这不是正确的方法。不。所以应该有另一层,并且

Python 有无数的数据可视化包,但说到生成表格,好吧,我只知道一个,那就是 great_tables。

因此,使用 Polars,你可以使用由 Rich 和 Michael Chow 创建的 great_tables 包来设置数据帧的样式。你使用 DF style 访问器,它将在后台使用 great_tables 包。就是这样。所以也许我会尝试向你解释你刚才给我的关于美元符号的例子。你可以告诉我我是否理解正确,也就是说

如果你有这个巨大的,无论你有一个非常小的表格都没有关系。如果你考虑一个有 100 行的电子表格,那么编写某种查找替换来在列中每个数字的开头添加美元符号实际上并不重要。但是如果你有一大块数据,那么尝试

编辑该巨大列中的每个单独项目在计算和内存方面将非常昂贵。因此,使用 great_tables,你有一个抽象层,你不需要单独更改所有行中的信息。它就像一个改变列属性的东西。

是的,我并没有真正暗示那里的性能问题。我觉得更改实际数据并不对。你想保留数据作为数据。因为你永远不知道之后你想做什么。也许你想进行后续计算。你必须再次编写美元符号。是的,当你想要四舍五入数字时。有很多情况下你只是……

想要更改表示方式并保持底层数据不变。很好。好的,是的,解释得很好。酷。所以你的书,听众们一定要看看,Python Polars The Definitive Guide,或者我应该正确地说,Python Polars,The Definitive Guide。很好。

The Definitive Guide。

在本期节目中,我们显然谈论了很多关于 Polars 的内容,这是一个流行的 Python 包。但另一个最近真正流行起来的 Python 包是 Pydantic。所以它是一个 Python 包和项目管理器,从零 GitHub 星星攀升到,是的,我现在没有这个数字,但这是一个非常大的数字。很多人都在谈论 Pydantic。

嗯,它已经超过了 Poetry,另一个长期以来备受青睐的包管理器。所以,嗯,

Tice,在你的一篇博文中,你提到放弃 Poetry 而使用 Pydantic。你将速度更快、可靠性更高和易用性更好作为原因。你想更多地告诉我们关于 Pydantic、Poetry 以及人们是否应该放弃 Poetry 的信息吗?我很乐意。是的,这也是我们决定为本书做的事情之一。

我们一开始使用 Poetry,并使用 PyEnv 和其他工具来管理 Python 版本。但最终,当我们准备读者可以使用的存储库时,该存储库包含与章节一起提供的不同笔记本,因此你可以按照章节进行操作并自己执行代码,并进行操作。

显然,你需要轻松地设置一个可以在你的所有读者可能拥有的许多不同系统上运行的环境。所以一开始,我们考虑过使用 Docker,因为这通常是让某些东西在不同类型的配置上运行的最简单方法。但当我们写这本书时,Pydantic 变得越来越大。在某个时候,我只是开始尝试使用 Pydantic,看看它设置起来有多容易。

它归结为安装 Pydantic,然后运行 Pydantic sync,它会设置好一切。它会设置正确的 Python 版本。它只是找到适合你系统的依赖项。一切都很顺利。所以最终,我们选择了这个作为该存储库的最终解决方案,以允许人们只安装 Pydantic 并使其工作。

我开始尝试使用 Pydantic 的原因之一主要是它符合基于 Rust 的工具的趋势,这表明工具的性能本身就是一个特性。这是 Polars 所展示的内容之一,它非常契合。Pydantic 也具有同样的优势,也是基于 Rust 的工具,速度快得多。它可以快 10 倍以上。

这与单命令设置相结合,使其成为一个非常快速和简单的胜利。- 也许你可以谈谈你在 Polars 中发现的回归,你没有派上用场。- 是的,在某个时候,Pydantic 速度如此之快,以至于你可以动态地设置一个环境,例如一个临时环境,它只是为该命令设置,然后再次拆除。有了它,我正在尝试使用它来对不同版本的 Polars 进行基准测试,以查看不同查询、不同类型的设置的速度。

并迭代版本,每次都增加它以查看发生了什么。在某个时候,我认为在 1.2 点版本中,突然出现了一个回归。查询开始花费 10% 的时间来运行完整的基准测试,而且它并没有再次下降。深入研究后,我们能够查明我们正在运行的基准测试的两个特定查询在特定版本上突然飙升。

因为 Pydantic 设置得如此之快,所以在一个使用 git bisect 的脚本中,它允许你查明它开始发生的 depoter 存储库中的确切提交版本,

允许我们找到哪个特定的提交导致了这个回归。有趣的是,当我在这周向 Podar 的人传达这个信息时,他们碰巧遇到了相同的代码,由于某种原因,他们无法很快弄清楚是什么原因造成的,但他们碰巧遇到了相同的代码并对其进行了重构,它就解决了。所以最终一切都很好。

但有趣的是,最终有一个包管理器能够如此快速地使用,你可以开始将其用于以前无法想到的全新用例。说得很好。是的,非常酷。我自己还没有使用 Pydantic,但听起来我应该使用。

我绝对推荐它。

你在本节目的上一期节目(第 531 期)全部都是关于命令行中的数据科学。显然,正如我们所讨论的,你已经写了两版这本书。你已经编写了使命令行更具交互性和趣味性的 R 包。我不知道我是否能正确地发音它们。有 Rayliber。R-A-Y-L-I-B-E-R。Rayliber。

RayLibber。好吧,RayLibber 是 RayLib 的一个包装器,它与命令行无关,但它是一个 C 库,用于创建视频游戏。用于创建视频游戏。用于创建视频游戏。是的,是的,是的。事实上,我有一个演讲。几年前我在 MYR 做过一次演讲,我在演讲中提倡视频游戏编程提供的一些东西,例如……

2D 和 3D 图形和交互性,如何将其用于数据科学。对,那就是 RayLibber。这是一个有趣的项目,对吧?你实际上可以使用 R 创建 3D 环境。

但它与命令行无关。所以让我们谈谈命令行。是的,所以让我们谈谈命令行。我的意思是,是的,我不知道其他任何一个,RECSPECT 或 TMUXER,如果它们与命令行有任何关系。哦,是的,是的。所以 TMUXER 是 TMUX 的一个包装器,你知道,终端多路复用器。如果你想一次运行多个终端会话,拥有这些会话,你可以使用 TMUXER 包以编程方式与它进行交互。

现在,这实际上是你刚才提到的其中两个包的三重奏。所以,tmuxr,有 rexpect,它来自 rxpect。我不确定你是否熟悉 xpect 工具。我不熟悉,不。它允许你在命令行上自动化操作。所以,自动登录到服务器,然后根据某些输出执行某些操作。

我为此编写了一个包装器,还有 knitr-active。现在,我可能是唯一一个使用过这些包的人,但我需要它们。当然,这就是你首先为自己编写软件的原因。但我需要这三个包才能能够使用 Bookdown 编写一本关于命令行的书,使用 knitr,这是我当时使用的系统。

所以很多,这叫什么,牦牛剃毛或自行车棚。很多工作,不是实际写作,而是很多工作。我们在 Polars 书中也有一些这样的工作。

但是是的,我的意思是,当你是一个工程师,当你是一个开发人员并且你正在写一本关于开发的书时,总有一些你需要为这本书做的开发工作,无论是为了进入状态还是实际上是有帮助的。只是为了让生活更轻松。是的。是的。本期 Super Data Science 节目由 Dell AI Factory 与 NVIDIA 赞助,帮助你从桌面到数据中心快速采用 AI。

Dell AI Factory 与 NVIDIA 提供了一个简单的开发启动平台,允许你在安全可靠的环境中进行本地原型设计。接下来,通过使用基于容器的微服务快速构建 AI 和数据工作流来开发和准备扩展,然后使用可扩展的基础设施框架在企业中部署和优化。访问 www.dell.com/superdatascience 了解更多信息。网址是 dell.com/superdatascience。

感谢你提供额外的上下文并解释这些包的作用。所有这些基本上只是为了在几分钟内增强你在命令行进行数据科学方面的专业知识,作为这方面的真正专家。我想在这里强调的是,在你的课程“拥抱命令行”中,大家可以查看,它是在线上的。更多信息请访问 yaroniansons.com/embrace。

- 对不起,打断你了。- 不,请说。- 这是我做过几次的课程。这是一门使用 Maven 的基于队列的课程,我已经做过几次了,我现在不做了。所以不幸的是,它不在线提供。我们可以剪掉它。- 不,没关系,你只需要保留它。我不介意我的错误出现在节目中。- 我也不介意。

但尽管如此,在那门课程中,或者至少在课程信息中,你说命令行既强大又令人望而生畏。对于我们那些可能还没有跨越这个情感障碍的听众来说,也许他们会编程,他们使用 Python,也许他们使用 R,或者他们使用的任何编程语言,

但他们还没有跨越这个门槛,这个情感障碍,开始使用命令行。你建议学生们如何克服这个情感障碍,并将命令行 shell 看作是数据科学和软件开发的伟大创意空间?- 是的,很不幸的是,你知道,当你第一次看到这个窗口、这个终端、这个带有提示符的闪烁光标等待你的命令时,

很遗憾,这确实令人望而生畏。但这就是当然,当 Unix 或 Linux 最初在 60 年代和 70 年代创建时,那时他们甚至没有屏幕。所以事情必须是,它们有点花哨。

所以你确实需要克服一个障碍,才能拥抱命令行。你可以应用某些技巧,你可以进行某些更改,以使命令行成为一个更愉快的环境,一个更宽容的环境。所以我总是喜欢做的事情是,让我尝试想出一些,

首先,使用你喜欢的颜色,使用你喜欢的字体,添加别名,以便你不必记住这些长命令、这些长咒语。所以你使体验更符合人体工程学。它还有助于在隔离的环境中工作,这样你就知道你不会破坏任何东西。Docker 可以用于此。

我认为如果你做这些事情,每天尝试使用命令行一会儿。不要试图一次做所有事情。我的意思是,我没有。我只是在这里和那里使用它作为补充工具集,除了,好吧,所有你想要使用的其他数据科学工具。

然后,是的,你将逐渐对命令行产生越来越多的欣赏。你将能够越来越好地拥抱它,使其成为你自己的东西。非常好。我喜欢这个。很好。所以我意识到我现在已经偏离了主题。我已经改变了话题,并将我们从你的 Polars 书中带走了。但我现在记得,在我们上节目之前,我们讨论过一些故事

我想在本期节目结束之前真正涵盖一下。所以我们将为观众提供这种令人沮丧的体验,回到你的书中。但这也许是一个不错的结束方式。

首先我想谈谈,所以你们可能知道也可能不知道,但在 2025 年,本播客的两大赞助商(我们非常感谢他们,因为这使我们能够继续运营并为所有人制作这个节目)是 Dell 和 NVIDIA。

听起来对于你的书的附录,Dell 和 NVIDIA,你们与他们进行了一些合作,使你们能够做更多的事情。解释一下他们如何参与你的书。是的。在某个时候,我收到 NVIDIA 发来的 LinkedIn 消息。内容是关于成为影响者的事情。起初,我没有多想。

一周或两周后,我决定回复,“好吧,我很感兴趣,让我们聊聊。”结果他们实际上想与我们合作。他们非常渴望向我们发送一些硬件,以便我们能够在 GPU 上对 Polars 进行基准测试。我们想,“太好了!”

唯一的问题是,我们没有任何东西可以放入显卡。所以这时他们带来了他们的合作伙伴 Dell,Dell 能够提供其余的硬件。这是一个很棒的合作。我们这样做的方法是——Thijs 可以更多地谈谈软件方面的事情,但在硬件方面,

它都在美国。所以 Dell 有这个实验室,他们有一台强大的机器,他们能够更换不同的 NVIDIA 显卡。所以我们使用了 RTX 6000。不,是 Ada 系列。Ada 系列。所以这些都是专业显卡,而不是消费级显卡。是的,工作站版本。是的。所以我们……

对我们来说,能够自己进行基准测试非常重要。我们不会仅仅复制一些宣传册、一些宣传材料上的数字。如果我们要将这些数字放入我们的书中,我们想自己生成这些数字。一切都很好。NVIDIA 和 Dell 认为这是一个好主意。所以最终我们能够尝试五种不同的显卡

用于许多不同的设置和包。

现在所有这些都在书的附录中进行了报告。但是 Thijs,也许你可以谈谈你实际上是如何进行基准测试的。是的。首先要补充一些背景信息,那就是 NVIDIA 有一个名为 Rapids 的团队,该团队致力于创建各种可以在 CUDA 平台上运行的通用计算包。CUDA 就像 NVIDIA 开放的计算平台,因此你可以有效地在 GPU 上运行

任何类型的计算。普通 CPU 和 GPU 之间的区别在于 GPU 拥有许多相对简单的处理器,但数量很多。因此,如果你能够将一个问题、一个计算问题转化为 GPU 可以运行的东西,它通常会加速很多,加速系数高达 10 倍。

他们也为 Pandas 等包做了这件事。他们有 QDF,这就是他们的包的名称。它是一个 DataFrame 库,但在 GPU 上运行。他们也希望与 Polars 合作。但由于 Polars 具有分层架构,它首先通过优化器运行,然后才发送到引擎,

将Polars API直接放在QDF上并将其转换为普通的QDF函数是一种浪费,因为Polars的许多性能增强都来自其优化。因此,Rapids与Polars合作设计了一个GPU引擎,该引擎从该优化层获取输入。

由于他们最近为这个新包开放了测试版,他们联系我们问道:“你们正在编写《文件夹之书》,想合作吗?”我们说,如果我们可以自己测试和基准测试,我们当然愿意,因为事实证明这也是一次愉快的合作。这是一个很酷的故事。

是的,绝对的。结果如何?这就是你现在要告诉我的吗?请告诉我结果。速度快多了。是的,是的。是的,所以我们一开始就注意到,宣传材料对它在什么规模的数据集上会有益处有点谨慎。从我们进行的测试中发现,它相当快。因为数据需要传输到GPU,所以会产生少量开销。

因此,当数据集大小增长时,您会开始看到差异,但从1GB开始就已经如此。因为它相对较快,因为您在专业环境中使用的大多数数据通常会开始增长很多。而且,呃,

我们还注意到,即使是处理器较少的相对较小的GPU卡也从中受益匪浅,仅仅使用GPU引擎就能大幅提高速度。

非常好。很酷的项目,很棒的结果,考虑到我们已经了解Polars的所有内容,包括您在本集前面在Aleander给出的示例,这并不令人意外。但是很高兴在那里对四张不同的NVIDIA卡进行全面的基准测试。而且很高兴戴尔为您提供服务器来进行所有这些基准测试。

好的。然后我想在这里讲最后一个故事。我已经提到过Marco Gorelli了,Marco Gorelli是我们在这个播客上第一个关于Polars的节目。那是第815集。然后他把我介绍给了Richie,Polars的创建者,几个月后在第827集里来了。现在你们是我们的,你们是……你们是关于……

Polars的最终剧集,可能是三部曲中的最后一集。好吧,可能不是最后一集。我们还会有更多。但对于这个来说,它就像最初的星球大战。四、五、六。你们是最初星球大战的第六集。所以我明白有一个有趣的故事,马可不知何故破坏了你们的书,迫使你们重写了一整章。现在很有趣。但当时不是。所以……

我们必须稍微回顾一下。我在Exomnia举办的一个圣诞派对上,Richie也在场。Richie说:“是的,Polars将具有数据可视化功能。”我说:“什么?Python不需要另一个包来进行数据可视化。已经有几十个了,太多了。”所以一开始我就像,“天哪,他们一直在扩展这个库。我们只想完成这本书。

所以我一开始很生气。过了一会儿,我开始意识到,好吧,也许没那么糟糕。我的意思是,如果书有一章关于数据可视化的内容,那么如果它有漂亮的图片,也许销量会更好。所以我开始写作。我很高兴发现

Polars本身不进行任何数据可视化。它有df.plot命名空间,但是该命名空间中的每个方法都会调用另一个包hbplot。我还不熟悉hbplot。这是一个元包,可以定位matplotlib和plotly以及另一个Bokeh。谢谢。

所以,好吧,我确实需要深入了解HBplot,但我不想只写关于HBplot的内容。我还想加入灰度表,对吧?我是它的忠实粉丝。你可以说,呈现表格也是一种数据可视化形式。我是plot line的忠实粉丝。所以这将是一章很大的章节。

所以我写了这个,然后突然在GitHub上看到了Marco Gorelli的这个拉取请求。他说:“好吧,我要把HB plot换成Altair。”

我说:“什么?现在我需要重写整章,或者至少要重写很大一部分。”就像,“马可,你在做什么?”现在我知道Altair非常适合这个,尤其是在使用浏览器并想要创建交互式数据可视化时。例如,Plot9不支持这一点。Altair肯定有其用例。

而且我也应该早点知道,当时的HBplot或Polars中的整个绘图功能都被标记为不稳定。所以我应该早点知道。我只是太高兴把它发布出来了。你知道吗?马可和我相处得很好。我们现在正在合作将Narwhal的项目纳入Plot9,以便Plot9更好地支持Polars和Pandas。

所以,是的,这就是我不得不几乎重写第16章“可视化数据”中所有内容的故事。

不错。精彩的故事。想象一下马可破坏你的书很有趣,因为他非常友善,因为我们实际上,与马可的那一集,我不知道你是否知道,但我是在伦敦亲自和他录制的,他坐火车来的。是的。他从卡迪夫坐火车到伦敦,大约需要三个小时才能来录制节目。是的,

然后我们之后也一起吃了晚饭。你真的会对一个非常善良和谨慎的人留下深刻印象。是的,我讨厌它。我讨厌它。我希望他不是那样。不,他是一个非常慷慨和善良的人。绝对很高兴与他合作。

我绝对喜欢他那种冷静的英国幽默感。太完美了。每次他在会议上发言时,他都会尝试融入那个国家的表达方式。

所以当他在阿姆斯特丹的Pi Data上做演讲时,他使用了“Helaas binde kaas”这个表达,翻译过来是“太糟糕了花生酱”。如果你不是荷兰人,那就没有任何意义。但这就是我……在德国,他谈到了“Lufden”或“Wufden”的概念,打开你所有的窗户,

我认为在巴黎的PyData上,他有一个关于巧克力面包发音的数据集。越往南走,它就变成了其他的东西。类似这样的作品。他是一个有趣的人。绝对的。

这真的很有趣。是的,所以人们想要更多这样的幽默。而且他非常技术性。我的意思是,深度,你知道,在本集中,我们没有深入探讨,这也不是本集的重点,在那一集中,以及Richie的那一集中。所以在第815集与Marco Gorelli或第827集与Richie Vink中,

以不同的方式,你会深入了解Polars速度如此之快的幕后原因。如果人们想查看这些内容,我们会在节目说明中提供链接。

好的,这基本上就结束了本集。很高兴你们两位来到节目中。Jeroen,欢迎回来。很高兴。是的,希望我们很快就能再次邀请你。Tice,我希望你的第一次播客体验不会太痛苦,来结束这一切。太好了。

嗯,Tice,让我们知道你是否有什么书籍推荐给我们,来结束这一切。我有。是的。所以,呃,通常我不太喜欢奇幻方面的东西来逃避现实,但是,呃,我喜欢的一件事是,当有人能够以一种有适当故事的方式解释复杂的事情时。

我最近读的一本书是Philip Detmer的《免疫》,他是Kurzgesagt的主要作者,Kurzgesagt也是一个YouTube频道,它有很多关于各种激烈话题的解释视频。但这本书,他深入探讨了免疫系统,这是一个极其复杂的问题。

然而,他仍然能够以一种非常有益且引人入胜的方式很好地解释它。所以这绝对是我最近读完并喜欢读的书之一。我喜欢这个推荐。在许多Kurzgesagt视频的结尾都向我宣传过它。Kurzgesagt是我订阅的少数几个YouTube频道之一,而且非常棒。我的意思是,如果我能……是的,太完美了。

如果我能回到过去,并以某种方式负责一个YouTube频道,那很可能就是Kurzgesagt。我认为它很棒。不错的选择。对于我们那些不会说德语的听众来说,Kurzgesagt的意思是简而言之。所以它就像你描述的他的免疫书籍一样……

你知道,说得很好,很容易理解一个复杂的话题。这就是该频道所有视频的目标。我强烈推荐Kurzgesagt。有很多引人入胜的话题,科学的,也有哲学的。它真的深入探讨了宇宙中生命的重大问题。很有趣。不错。Jeroen,你有什么书籍推荐吗?当然,我有。我目前正在享受Brian Kernighan的《Unix:历史与回忆录》。这是一本短书。我还没有读完,

但是,你知道,正如我们所讨论的,Unix可能是一个非常枯燥的话题,但是了解它的历史和背后的人们、政治以及开发这样一个……

深刻的软件所发生的事情是如此有趣。是的,真正的革命性。这并没有低估它。如果你正在观看视频版本,你可以看到这本书是什么样的。但是是的,Unix确实是革命性的。我的意思是,想想我们现在所站立的巨人的肩膀是多么令人震惊,

发明我们在计算方面的相对琐碎的事情,尽管有趣的是,尽管它们与Unix相比是相对琐碎的,但由于我们正在进入的这个人工智能时代,随着智能机器的出现,

也许几十年后,他们会回顾过去,并思考伟大的表格以及伟大的表格书籍在历史上产生的巨大差异。伙计们,很高兴你们来到节目中。

如果大家想了解更多你们的幽默和精彩见解,节目结束后他们如何关注你们呢?嗯,最简单的方法可能是访问我们已经提到的同一个网站Polars.com。从那里,你可以找到我们LinkedIn页面和其他我们所在地方的链接。这可能是最简单的。酷,是的。所以基本上你会说LinkedIn是你们两个的主要社交媒体吗?是的,是的。我正在尝试Blue Sky。

我一直非常活跃,或者说我一直很喜欢Twitter很长时间了,但这已经改变了。在LinkedIn上,每当我们发布关于这本书的内容时,我们似乎都会得到很多回应,氛围很好。我的意思是,有很多……

LinkedIn上还有其他事情发生,但是,是的,它有效。它有效。是的。LinkedIn现在正在运作,我们不能对每个社交媒体平台都这么说。这绝对是我最活跃的地方。

太棒了。非常感谢。这是另一集精彩的节目。真的和你们一起度过了一段美好的时光。感谢你们在设备齐全的完美主义者暴君——你们自己的工作室里——与我们一起录制节目。是的,我希望将来能再次邀请你们参加节目。谢谢,John。非常感谢你们的邀请。