搜索
您的当前位置:首页正文

NumPy数组(初识numpy数组)

来源:二三娱乐

NumPy

是一个基础性的Python库,为我们提供了常用的数值数组和函数

安装

$ sudo apt-get install python-numpy

一个简单的应用

假设要对向量a和b进行求和,向量a存放的是整数0到n-1的2次幂

使用纯python代码

def pythonsum(n):
    a = list(range(n))
    b = list(range(n))
    c = []
    for i in range(len(a)):
        a[i] = i**2
        b[i] = i**3
        c.append(a[i]+b[i])
    return c

使用NumPy解决

import numpy as np
def numpysum(n):
    a = np.arange(n)
    b = np.arange(n)
    c = a + b
    return chnb

比较这两个方法的耗时


In [1]: import sys 
        from datetime import datetime
        import numpy as np


        def pythonsum(n):
            a = list(range(n))
            b = list(range(n))
            c = []
            for i in range(len(a)):
                a[i] = i**2
                b[i] = i**3
                c.append(a[i]+b[i])
            return c

        def numpysum(n):
            a = np.arange(n)**2
            b = np.arange(n)**3
            c = a+b
            return c

        size = 1000
        start = datetime.now()
        c = pythonsum(size)
        dalta = datetime.now()-start
        print('最后两次的值',c[-2:])
        print('pythonsum耗时',dalta.microseconds)


        start = datetime.now()
        c = numpysum(size)
        dalta = datetime.now()-start
        print('最后两次的值',c[-2:])
        print('numpysum耗时',dalta.microseconds)
Out[1]: 最后两次的值 [995007996, 998001000]
        pythonsum耗时 878
        最后两次的值 [995007996 998001000]
        numpysum耗时 222

显而易见,NumPy的速度要比等价的python代码快得多。无论是否使用NumPy数组,计算结果都是相同的。不过,结果的显示形式还是有所区别的,numpysum()给出的结果不包含逗号,因为我们处理的不是Python列表,而是NumPy数组


结束语

如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~

Top