Numpy介紹

Kevin Chiu
3 min readAug 6, 2019

--

首先,什麼是Numpy?

Numpy 是 Python 的一個重要模組(Python 是一個高階語言,可以透過整合其他低階語言同時擁有效能和高效率的開發),主要用於資料處理上。
Python 處理龐大資料時,其原生 list 效能表現並不理想(但可以動態存異質資料),而 Numpy 具備平行處理的能力,可以將操作動作一次套用在大型陣列上。

此外 Python 其餘重量級的資料科學相關套件(例如:Pandas、SciPy、Scikit-learn 等)都幾乎是奠基在 Numpy 的基礎上。因此學會 Numpy 對於往後學習其他資料科學相關套件打好堅實的基礎。

Numpy 基礎操作

import numpy as np

1. array應用

np.array(): 有矩陣加減乘除的應用

np.zeros( (x,y) ): x*y全零矩陣

np.empty(): 用法與np.zeros一樣,但唯一的差別是NumPy不會初始化陣列內元素的初始值,所以內容將會是不確定的。

np.arange( 起始值, 結束值, 步幅, 資料型別 )

np.linspace( 起始值, 結束值, 起始與結束的區間內要產生幾個元素 )

2. np取值

np.sum:矩陣加總
np.min:矩陣最小值
np.max:矩陣最大值
np.mean:矩陣平均值

np.sqrt:矩陣內所有元素開平方根
np.exp:矩陣內所有元素進行Exponential function(e)運算
np.add:矩陣或陣列相加

3. np slicing

  1. Indexing

索引(Indexing)的用途不外乎就是為了要從陣列和矩陣中取值,但除此之外有很多種功能!
可以取出連續區間,還可以間隔取值!

選取連續區間 [a:b]

2. slicing

切片(Slicing)的用途和索引(Indexing)很像!
若能活用便能加快程式撰寫速度!

間隔選取[::c]

以1維陣列來說明x[a:b:c]
a:選取資料的起始索引
b:選取資料的結束索引+1
c:選取資料間隔,以索引值可以被此值整除的元素,不指定表示1

3. 迭代

迭代(Iterating)比較熟悉一點,可以說就像foreach一樣的使用方法

# Iteracted overa = np.arange(10) ** 2for i in a:print(“a**(1/2)=> {0}”.format(np.round(i**(1/2), 0)))

4. Shape變化

np.reshape(a, b):這是最基本的塑形功能,可以直接將陣列重新塑形成a-by-b或是更高維度的形狀!

np.ravel():此功能會回傳一個將陣列或矩陣經扁平化(flattened)處理後的陣列

ndarray.T:轉置矩陣(transpose)

5. 矩陣堆疊(Stacking)

這功能可以方便運算時矩陣串接的需求!

np.vstack(a, b):將a, b矩陣沿著垂直軸堆疊!
np.hstack(a, b):將a, b矩陣沿著水平軸堆疊!

a = np.arange(1,11).reshape(2,5)
print(“a=>\n{0}”.format(a))
print()# 水平堆疊print(“np.vstack((a,a))=>\n{0}”.format(np.hstack((a,a))))print()# 垂直堆疊print(“np.hstack((a,a))=>\n{0}”.format(np.vstack((a,a))))

#本篇只簡單介紹numpy較常用到的指令

--

--