2017年10月3日 星期二

Python 處理Excel (.csv) 欄位計算使用Numpy



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.]]





沒有留言 :

張貼留言