当前位置: 首页 > 科技观察

你知道Python中的数据处理库Pandas是怎么诞生的吗?

时间:2023-03-17 21:18:47 科技观察

01Pandas1.0最近发布。但是你知道它是怎么诞生的吗?故事可以从很多地方开始,但让我们先从1954年说起。有两件事对1954年熊猫的诞生非常重要。021954年3月1日,美国在比基尼环礁试验了一枚高当量热核弹。氘化锂(LiD)是燃料。天然锂由两种不同的同位素组成——锂6和锂7。氘化锂6被认为是氢弹的良好燃料,而氘化锂7被用作反应中的慢化剂,假设它是完全惰性的。事实证明,这个假设大错特错——本应缓和反应的物质最终成为了燃料。结果,原本应该是600万吨的爆炸变成了1500万吨的爆炸。这个实验的后果在时间和空间上都是深远的。一艘日本渔船的船员遭受了严重的辐射中毒,马绍尔群岛的许多人遭受了尘埃的长期伤害。它告诉人们什么是放射性尘埃,以及在核爆炸之外如何不安全——核爆炸可能会影响数百英里以外的人。也许最著名、与我们的故事最相关的是1963年的《有限禁止核试验条约》(有限禁试条约),该条约终止了在大气层、水下和太空进行核试验。CastleBravo清楚地表明了这些实验的危险性、破坏的广泛性以及几乎不可能保证不会发生重大错误。当然,这意味着要对模拟核爆炸的计算机技术进行重大投资,而不是过分依赖实验。该技术已处于起步阶段,但模拟核武器的任务将推动科学计算发展至今。这种对计算机和软件的追求是硅谷的发源地。03“我的大部分工作都是因为懒惰,我不喜欢写程序,所以,当我在IBM701上写一个计算导弹弹道的程序时,我开始写一个程序系统,让写程序更容易。”-JohnBacchus任何Pandas用户都应该非常熟悉这种思维过程——它本质上是Pandas、R、SQL以及其他任何试图让您专注于数学和数据操作动机的声明性编程框架。Fortran(“公式转换”的复合词)是一种用于编写科学程序的工具,与等效的Python代码相比,它可能显得冗长,但肯定比汇编更具表现力。你可以按照这里的代码,但是一堆操作码就不一定了。它还具有仍在使用的最古老的编程语言。它于1950年开发,但其第一个程序于1954年运行。Fortran不仅仅是科学计算的精神先驱。用于进行矩阵操作的Fortran包,例如BLAS和LAPACK,是pandas的“底层”。您计算机上的翻译器不必用Fortran编写(默认为C)。但它是一个选项,C的来源,如果你真的需要性能,它通常就是你想要的。值得注意的是,BLAS、LAPACK和Fortran科学生态系统的其余大部分仍然是军工联合体的产物。或者,至少是那些可用的开源。能源部、DARPA和NSF(具有国防授权)等组织提供资金和工作时间来使这些软件包保持最新状态。这就是为什么它仍然被使用的部分原因。然而,Fortran语言只是我们故事的一半。pandas不仅与快速操作有关——它还与语法有关。04嗯,Fortran是汇编的一个进步,但它并不是NumPy或Pandas代码的真正样子。为此,我们需要具有良好矢量化语法的基于数组的语言。我要谈谈APL,因为它是最不可思议的。我很确定WesMcKinney说过这是Pandas的灵感来源。有一种说法,有两种编程语言,一种是“从计算向上”开始的,另一种是“从数学向下开始的”。Fortran虽然相对友好,但仍然会让您考虑预分配内存等问题。APL来自一位名叫KennethE.Iverson的数学家,他提出了一种用于处理数组的符号。最终他们用Fortran编写了一个实现,它成为了一种真正的编程语言。APL简洁、表达力强,使矩阵运算成为一等公民。当然,你必须学习一堆奇怪的符号,需要一个自定义键盘,还必须内化包含“副词”概念的语法。但是,如果您所做的只是操纵数据,那就还不错。它也更接近于数学符号,如果你有这方面的背景,那就太好了。