Numpy是一個開源的Python科學計算庫,它是python科學計算庫的基礎庫,許多其他著名的科學計算庫如Pandas,Scikit-learn等都要用到Numpy庫的一些功能。

本文主要內容如下:

  1. Numpy數(shù)組對象

  2. 創(chuàng)建ndarray數(shù)組

  3. Numpy的數(shù)值類型

  4. ndarray數(shù)組的屬性

  5. ndarray數(shù)組的切片和索引

  6. 處理數(shù)組形狀

  7. 數(shù)組的類型轉換

  8. numpy常用統(tǒng)計函數(shù)

  9. 數(shù)組的廣播

1 Numpy數(shù)組對象

Numpy中的多維數(shù)組稱為ndarray,這是Numpy中最常見的數(shù)組對象。ndarray對象通常包含兩個部分:

  • ndarray數(shù)據(jù)本身

  • 描述數(shù)據(jù)的元數(shù)據(jù)

Numpy數(shù)組的優(yōu)勢

  • Numpy數(shù)組通常是由相同種類的元素組成的,即數(shù)組中的數(shù)據(jù)項的類型一致。這樣有一個好處,由于知道數(shù)組元素的類型相同,所以能快速確定存儲數(shù)據(jù)所需空間的大小。

  • Numpy數(shù)組能夠運用向量化運算來處理整個數(shù)組,速度較快;而Python的列表則通常需要借助循環(huán)語句遍歷列表,運行效率相對來說要差。

  • Numpy使用了優(yōu)化過的C API,運算速度較快

關于向量化和標量化運算,對比下面的參考例子就可以看出差異

  • 使用python的list進行循環(huán)遍歷運算

def pySum():
    a = list(range(10000))
    b = list(range(10000))
    c = []    for i in range(len(a)):
        c.append(a[i]**2 + b[i]**2)    return c
%timeit pySum()
10 loops, best of 3: 49.4 ms per loop