摘要:每天解锁一个Python小知识,今天来认识的是NumPy。如果你正在使用Python进行数据分析、科学计算及人工智能开发,那么你一定听说过NumPy--Python内置的数据结构如List非常灵活,为什么还要使用NumPy?岂不是多此一举?
每天解锁一个Python小知识。
每天解锁一个Python小知识,今天来认识的是NumPy。如果你正在使用Python进行数据分析、科学计算及人工智能开发,那么你一定听说过NumPy--Python内置的数据结构如List非常灵活,为什么还要使用NumPy?岂不是多此一举?
这里我们来看一个实例,注意看这两段代码分别用Python原生列表NumPy创建了500万个数字并进行乘以2的运算。我们来看一下其运算效率,xtimeit num原生列表完成一次循环平均需要131毫秒,而NumPy则仅需9.14毫秒,性能效率差距巨大。
所以NumPy的诞生正是为了解决Python原生数据结构在处理大型数据集时的性能问题。而在数据科学分析领域以及当前的AI运算中,刚刚500万个元素的运算连门槛都达不到,没有NumPy可想而知,Python在大型数据集的运算上有多困难,Python也不可能成为AI领域炙手可热的语言。
NumPy之所以能有这么高的运算效率,主要是由于其底层由C语言来完成,避免了解释器开销,改变了内存布局。这里不做原理的深究,我们只需要知道NumPy赋予了Python在数据科学领域独特的魅力。
相对于原生列表,运算速度可提升100倍,内存效率更高,向量化运算、广播功能等让其在数据分析和处理AI机器学习、图像处理、金融建模等领域无处不在。实际上,现在主流的数据科学库如Pandas、Scikit_learn PyTorch等都建立在NumberPy之上。可以说,NumPy是Python数据科学生态系统的核心基础。
来源:有趣的科技君