2020年8月28日 星期五

Python Access Multi Dimensional Array 多維陣列的存取

在機器學習或是人工智慧上
以 Python 為主會遇到一個套件是 NumPy
他在陣列的存取上極其方便
以致後續對於陣列(array)操作 / 矩陣(matrix)運算 / 卷積(convolution)計算都用得上
這邊把學習到的心得整理起來已備後續查找用

以往存取陣列就是用元素存取
例如 X[0][0] 這種
如果要有條件通常就是跑迴圈
而在 Python 裡面則已經內建與法處理掉這種事情
讓程式可讀性(習慣的話)以及效率提升

一開始搞不太懂也不看教程
其實不自己測試只看教程真的是看了也沒懂 (沒fu)
 
首先在一維陣列裡面
x = np.array([0, 1, 2, 3, 4])
x[n]: 取第幾筆
還有一種是可以指定的
格式為 x[start: end: delta]
delta 就是 interval 可以負號則反向
也就是說要抓這個陣列可以給予起始 ~ 結束-1 多久取一次
就是 for (i = start; i < end; i += delta) print(x[i])
delta 負號則為 for (i = end - 1; i >= start; i -= delta) print(x[i])
但是因為是內部處理所以比 for loop 快很多
所以
x[0:3:1] = [0, 1, 2]
x[0:3:2] = [0, 2]
x[2:4:2] = [2]
x[0:] = [0, 1, 2, 3, 4] # 沒寫就是預設
預設是 x[0: length: 1] 以這個例子為 x[0:5:1]
負號則為 x[length-1: 0: -1] 
x[:2:] = [0, 1]
x[1::2] = [1, 3]
x[2::-1] = [2, 1, 0]
x[:1:-2] = [4, 2]
x = x[:] = x[::] = [0, 1, 2, 3, 4]

一維陣列的例子看完後 多維例子就很簡單
以一個三維陣列來說
原本存取有這樣的方式
y[l][m][n] 或是 y[l, m, n]
後者的 l m n 換成剛剛上面一維陣列的格式就可以用了
格式就是 y[ start:end:delta , start:end:delta , start:end:delta]
可以省略的可以簡寫的均相同


補充一下 np.shape(y) 可以查 array 維度






2020年7月3日 星期五

購買 AWS Reserved Instances(RI) 預留執行個體

觀察了這一個多月的狀況,目前沒有問題

根據 如何購買預留執行個體 這邊可以知道如何購買
其實就是 AWS EC2 Console 旁邊選單就有連結且有建議選項
會幫你估算過去這段時間如果改成綁約可以省多少錢




那就給他買下去啦
購買表單可以參閱上一篇文章



但是好像不是 Order 完就馬上付款
不知道為什麼會卡在那邊
先觀察看看

會併入下一期的帳單
然後一陣子就會自動開通使用買的 RI 方案
之後去主控台就可以看到





綁約就是省點錢 XD