今仔日這篇, 是單純介紹 2 維陣列 (2-dimension Matrix) ê 運算. 這是單純數學ê概念, 閣加一寡使用 Numpy 來計算2 維陣列 ê 方法. 若是你本底就會曉親像 Dot 運算 (華語: 內積, 台羅: tat 運算, 抑是點運算), 這對你就真簡單.
啥mi̍h是 2 維陣列 (Matrix)?
2 維陣列 (英文: Matrix, 台羅: Mé-tsuī-khū-sù, 簡單講 Mé-tshuì), 華語有時嘛翻做矩陣 (台羅: kú-tīn), 就是kā一陣數字排做伙, 干焦軍隊踢正步按呢四正仔四正, 逐个數字攏有伊佇咧直个算來第幾个, 橫ê算來第幾个ê位置, 咱舉一个例:
伊是一咧兩逝三排 ê 矩陣. 你 uì 逝(row) 看去, 伊是兩个一維陣列. uì 排(column) 看去, 伊是三排一維陣列, 這 2 和 3, 就號做伊的維度. 咱先來用 Numpy 做一咧Mé-tshuì:
你會當看著 (2, 3), 表示伊是一个 2x3 ê Mé-tshuì.
毋過, 佇 Python 內底, 抑是真濟其他 ê 程式語言內底, 伊佇排順序个時, 攏是uì 0 開始, 所以, 咱這馬都會使佮 1, 2, 3, 4, 5, 6 佇這个 Mé-tshuì ê 位置寫綴佇數字邊阿:
抑就是咱若是予kā這个 Mé-tsuì 名叫 A, A(0,0) 就是 1, A(1,2) 就是 6. 若是干焦 A(0), 就是 kā 規个 row 0 (lóo-lîng) 掠出來
你會當看著 (2, 3), 表示伊是一个 2x3 ê Mé-tshuì.
毋過, 佇 Python 內底, 抑是真濟其他 ê 程式語言內底, 伊佇排順序个時, 攏是uì 0 開始, 所以, 咱這馬都會使佮 1, 2, 3, 4, 5, 6 佇這个 Mé-tshuì ê 位置寫綴佇數字邊阿:
抑就是咱若是予kā這个 Mé-tsuì 名叫 A, A(0,0) 就是 1, A(1,2) 就是 6. 若是干焦 A(0), 就是 kā 規个 row 0 (lóo-lîng) 掠出來
Matrix ê Dot 運算 (台羅:Tot)
有人是 kā 伊講做 "乘", 毋過, 對 Matrix 來講, 咱真僫用整數 "乘" 个概念來了解伊, 我是感覺用英文 (Dot) 音譯就好--阿. 當然, 你欲講 "點" 運算, 抑是華語直翻 "內積" 嘛由在你. 總--是, 有人用上重要, 濟人用上重要. 用久, 自然會產生共識. 上驚就是討論規半工, 堅持家己, 落尾連家己嘛無用, 閣旋轉去用華語, 按呢是來亂--ê--nih?咱這馬先用一个 2x3 和 3x2 ê Matrix 做 tot 運算內做例:
Tot 運算是按呢: kā tot (*) 倒手爿 ê Mé-tshuì ê 逝, 和伊正手爿 ê Mé-tshuì ê 排, 有對同 ê 元素做乘法, 才閣 kā 乘出來 ê 數字合--起來, 成做落尾結果 ê 元素.
[1,2,3] 是 0 逝, [ 7, 8, 9 ] 是 0 排, 結果 1*7+ 2*8+3*9 = 50 就囥佇 (0, 0)
[1,2,3] 是 0 逝, [ 10, 11, 12 ] 是 1 排, 結果 1*10+2*11+3*12=68 就囥佇 (0, 1)
[4,5,6] 是 1 逝, [ 7, 8, 9 ] 是 0 排, 結果 4*7+ 5*8+6*9 = 122 就囥佇 (1, 0)
[4,5,6] 是 1 逝, [ 10, 11, 12 ] 是 0 排, 結果 4*7+ 5*8+6*9 = 167 就囥佇 (1, 1)
所以咱會使知影:
1. * 前仔 ê 排, 和後壁 ê 逝, 數目愛仝款. 比如講: 2x3 tot 3x2, in ê "3" 是仝--ê.
2. 算出來新ê Mé-tshuì, 伊个維度是前仔彼咧 ê 逝 ê 數目, 和後壁彼个 ê 排 ê 數目, 比如講: 2x3 tot 3x2, 結果是 2x2 ê 維度, 中方 ê 3 佇運算過程中消失去--阿.
沒有留言:
張貼留言