首页 理论教育 Python学习:NumPy数组VSPython列表

Python学习:NumPy数组VSPython列表

时间:2023-10-27 理论教育 版权反馈
【摘要】:通常NumPy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以在通用性方面NumPy数组不及Python列表,但在科学计算中,通常需要同时处理的数据类型都是相同的。此外NumPy是专门的数组语言,用其操作数组,可以省去很多循环语句,代码比使用Python列表简单得多。下面分别使用NumPy数组和Python列表实现向量加法。

Python学习:NumPy数组VSPython列表

NumPy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。2.2.2小节介绍了Python列表,使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组,那么为什么还需要使用NumPy数组呢? 

NumPy专门针对数组的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,NumPy的优势就越明显。通常NumPy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以在通用性方面NumPy数组不及Python列表,但在科学计算中,通常需要同时处理的数据类型都是相同的。此外NumPy是专门的数组语言,用其操作数组,可以省去很多循环语句,代码比使用Python列表简单得多。 

下面分别使用NumPy数组和Python列表实现向量加法。向量a的取值为0~99,向量b的取值为0~99的平方,向量c为向量a和b的和。 

先使用Python列表实现(ch2-5-list.py): 

运行结果如下:(www.xing528.com)

注意:range(100)的作用是创建一个有100个元素的列表,取值分别为0~99。

再使用NumPy数组实现(ch2-5-numpy.py): 

运行程序,结果如下:

比较两个程序,显然使用NumPy 数组的代码更简洁。运行两个程序,会发现NumPy代码(用时0.0018s)比Python代码(用时0.014s)运行速度快,并且向量越大,速度差异越明显。两种方法得到的结果数值是一样的,但是输出方式有所不同,使用Python列表时,输出的数值间用逗号分隔,而使用NumPy数组时则没有逗号。 

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈