python numpy
import numpy as np
list_1 = [1,2,3,4]
array_1 = np.array(list_1) #一維陣列
list_2=[5,6,7,8]
array_2=np.array([list1,list2])#二維陣列
array_2.shape
array_2.size
array_2.dtype
array_4=np.arang(1,10,2)
array_4
np.zeros(5) #全零矩陣
np.zreos([2,3])
np.eye(5) #單位矩陣
np.eye(5).dtype
陣列創建及訪問
a=np.arange(1,10)
a[1]
a[1:5]
b=np.array([1,2,3],[4,5,6])
b[1][0]
b[1,0]
c=np.array([1,2,3],[4,5,6],[7,8,9])
c[:2][1:]
np.random.randn(10)#隨機十個1以下的數
np.random.randint(10)#隨機一個10以下的數
np.random.randint(10,size=20)#隨機二十個10以下的數一維
np.random.randint(10,size=(2,3))#隨機3*2陣列10以下的數二維
np.random.randint(10,size=20).reshape(4,5)#二維
陣列運算
a=np.random.randint(10,size=20).reshape(4,5)
b=np.random.randint(10,size=20).reshape(4,5)
a+b
a-b
a*b
a/b
矩陣運算
np.mat([[1,2,3],[4,5,6]])
a=array
a=np.mat(a)#陣列轉矩陣
b=np.mat(b)
a+b
a-b
a*b #矩陣a的行必須等於矩陣 b的列
陣列常用函數
a=np.random.randint(10,size=20).reshape(4,5)
np.unique(a) #array中不同的數值
sum(a)#加總二維陣列的column,是一串list
sum(a[0])#加總二維陣列的row[0]
sum(a[:,0])#加總二維陣列的column[0]
a.max()
max(a[0])
max(a[:,0])
序列化serialization
序列化(serialization)在計算機科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式(例如存成檔案,存於緩衝,或經由網絡中傳送),以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。
方法一
import pickle
import numpy as np
x=np.arange(10)
f=open(‘x.pkl’,’wb’)
pickle.dump(x,f)
f=open(‘x.pkl’,’rb’)
pickle.load(f)
方法二(easy )
np.save(‘one_array’,x)
np.load(‘one_array.npy’)
y=np.arange(20)
np.savez(‘two_array.npz’,a=x,b=y)
c=np.load(‘two_array.npz’)
c[‘a’]
c[‘b’]