1. 程式人生 > 實用技巧 >前端匯出excel(三----基於Blob.js和 Export2Excel.js做前端匯出)

前端匯出excel(三----基於Blob.js和 Export2Excel.js做前端匯出)

前言

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理。

作者:基因學苑

NumPy(Numerical Python的簡稱)是高效能科學計算和資料分析的基礎包。NumPy最重要的一個特點就是其N維陣列物件(即ndarray),該物件是一個快速而靈活的大資料集容器。新手可能不理解這句話的含義,這個需要慢慢去理解 。總之,知道numpy是python資料分析最重要的基礎包就可以了。有了numpy才可以利用這種陣列對整塊資料執行一些數學運算,比python自帶的陣列以及元組效率更高,其語法跟變數元素之間的運算一樣,無需進行迴圈操作。


為什麼需要numpy

python預設進行多個數據的計算,是使用迴圈,如果迴圈次數多,就非常耗時。舉個簡單的案例,我們要計算100000個隨機數的值,如果傳統程式設計需要寫迴圈,用了2.2s,而使用numpy資料結構,則可以進行向量化操作,無需迴圈,只需要28.2ms節約大量時間。

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

如何生成ndarray

numpy的核心是ndarray(n-dimensional array),多維陣列。所謂資料就是同一型別資料的集合,比如1000個數字構成一個數組,1000個字元也構成一個數組。numpy包含很多函式,可以將python資料結構很容易轉換為numpy的ndarray。

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

比較傳統列表陣列與ndarray的區別

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

NumPy常用函式

numpy有很多函式,其中使用numpy比較多的功能是利用其生產數字,比如隨機數,正太分佈,等差數列等。

# 使用array建立陣列:
arr = np.array([1,2,3])
arr = np.array([1,2,3],[4,5,6],[7,8,9])

# 使用arange建立陣列
arr = np.arange(0,10,1)
#建立1-12的3行4列的二維陣列 arr = np.arange(12).reshape(3,4) # random生成隨機數 #生成隨機數種子 np.random.seed(1234) #randn 產生正太分佈樣本 np.random.randn(1000) #隨機生成整數資料集 np.random.randint(size=1000,low=1,high=1000)

數學計算函式

numpy內建了很多計算的函式,可以進行很多數學,輸入資料是一個ndarray即可。

# 使用array建立陣列
#x是一個包含1000個隨機正整數的集合,取值範圍從1~1000。
x=np.random.randint(size=1000,low=1,high=1000)
#輸出x
x
#進行集合的求和,平均值,方差,標準差等計算
np.sum(x)
np.mean(x)
np.var(x)
np.std(x)
np.min(x)
np.max(x)
np.argmin(x)
np.argmax(x)
np.cumsum(x)
np.cumprod(x)

計算機效能測試

下面做一個有意思的計算機效能測試,隨機生成一個大的資料集,看你的計算機能計算多少位,這個和記憶體有關係。

#生成100萬個數值進行計算
x=np.random.randint(size=1000000,low=1,high=1000)
np.sum(x)
#生成1000萬個數值進行計算
x=np.random.randint(size=10000000,low=1,high=1000)
np.sum(x)
#生成1億個數值進行計算
x=np.random.randint(size=100000000,low=1,high=1000)
np.sum(x)
#如果覺得自己計算機效能不錯,可以計算挑戰