numpy学习笔记一:numpy的基本用法

    numpy是python中的一个扩展包,它支持以向量的方式进行高密度的计算,由于其底层采用C++实现,因此具有比较高的效率。为了安装简便,可以直接使用WinPython进行安装,缺点就是每次使用时需要在方法前加入包名。

    相对于Python自带的list对象,numpy向量的方式能够保证运算具有较高的效率。这里给出一个例子。

import numpy as np
import sys
import datetime as datetime
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 numpysun(n):
    a = np.arange(n) ** 2
    b = np.arange(n) ** 3
    c = a + b
    return c
start = datetime.datetime.now()
numpysun(1000)
time = datetime.datetime.now() - start
print('the time wasted by numpy is' + str(time.microseconds))
start = datetime.datetime.now()
pythonsum(1000)
time = datetime.datetime.now() - start
print('the time wasted by python is' + str(time.microseconds))
代码中的两个方法分别是生成一个向量然后将向量相加。运算结果如下图:

numpy学习笔记一:numpy的基本用法_第1张图片

    可以从时间上看出,使用numpy计算1000数量级的计算几乎没有消耗,而使用python则需要一些消耗了,而这一对比将随着数量级的增加而越来越明显。

    下面介绍numpy中几个常见的用法:

a = np.arange(n)

    作用是生成一个长度为n,内容为[0,1,2,3,4,5,6,7,8,9]的向量。

a**2

    所实现的功能是将a向量中每一个元素进行平方,同理a+b则是将a、b中对应的元素进行相加。

start = datetime.datetime.now()

    用于获取当前时间,可在某过程计算的开始和结束分解执行此操作从而估算程序运行消耗的时间。

你可能感兴趣的:(numpy学习笔记)