1. 程式人生 > >numpy學習筆記一:numpy的基本用法

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計算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()

    用於獲取當前時間,可在某過程計算的開始和結束分解執行此操作從而估算程式執行消耗的時間。