Python 處理Excel (.csv) 欄位計算使用Numpy
Numpy是Python用來科學計算的一個非常重要的函式庫,numpy主要用來處理一些矩陣對象,可以說numpy讓Python有了Matlab功能。
import numpy as np
p.s 使用numpy 要先安裝此module
pip3 install numpy
產生5x7陣列
a = np.arange(35).reshape(5,7)
print(a)
[[ 0 1 2 3 4 5 6] [ 7 8 9 10 11 12 13] [14 15 16 17 18 19 20] [21 22 23 24 25 26 27] [28 29 30 31 32 33 34]]
取出特定cell的值
print(a[2,4])
18
取出特定列
print(a[0:3,:]) #取出某些列中的全部欄位 從第0列~第3列
[[ 0 1 2 3 4 5 6] [ 7 8 9 10 11 12 13] [14 15 16 17 18 19 20]]
取出特定列、欄
print(a[0:3,0:4])
# [start:end:step] 用來連續抓取一塊矩陣範圍, 可以使用step參數 (step=1,2,3...) , 預設step=1 (step=1可以不寫)
[[ 0 1 2 3] [ 7 8 9 10] [14 15 16 17]]
print(a[1:5:2,::3]) #row : 1,3 ; column: no start, so start(0):no end:step 3==> 0,3,6,....[[ 7 10 13] [21 24 27]]
取出特定欄
print(a[:,1]) #start 不寫表示從0開始, end不寫表示算到最後 [ 1 8 15 22 29]
[ 1 8 15 22 29]
取出多個特定欄位
print(a[:,[1,3,4]]) #取出所有列中的某些特定欄, 第1欄, 第3欄,第4欄
[[ 1 3 4] [ 8 10 11] [15 17 18] [22 24 25] [29 31 32]]
欄位相乘
f1,f2=1,2
y1=a[:,f1]
y2=a[:,f2]
y=y1*y2
print(y)
[ 2 72 240 506 870]
找最大值 print(np.max(y))
870
找最小值print(np.min(y))
2
陣列元素值加總print(np.sum(y))
1690
陣列元素四捨五入
np.around([0.55, 0.65, 0.05], decimals=1)
array([0.6, 0.6, 0.0])
矩陣轉置
y=a[0:3,0:4]
print(y.T)
[[ 0 7 14] [ 1 8 15] [ 2 9 16] [ 3 10 17]]
#矩陣合併 import numpy as np ###矩阵a a=np.floor(10*np.random.rand(2,3)) b=np.floor(10*np.random.rand(2,3)) print(a) print(b) #hstack(): column合併 ,但row數要相同 c=np.hstack((a,b)) print(c) ##vstack(): row合併 ,但column數要相同 d=np.vstack((a,b)) print(d)
[[ 3. 1. 4.] [ 6. 5. 3.]] [[ 6. 6. 0.] [ 0. 0. 0.]] [[ 3. 1. 4. 6. 6. 0.] [ 6. 5. 3. 0. 0. 0.]] [[ 3. 1. 4.] [ 6. 5. 3.] [ 6. 6. 0.] [ 0. 0. 0.]]
沒有留言 :
張貼留言