作者TuCH (謬客)
看板Python
標題Re: [問題] 多變量函數值轉成矩陣
時間Fri Oct 5 16:26:55 2018
※ 引述《sssh (叫我松高魂 ~~)》之銘言:
: 想請問一下,這幾天碰到一個問題,
: 有兩個相同大小(3*30)的矩陣B,C
: 我想要弄出一個新的矩陣D
: 新矩陣裡面的元素是給定兩矩陣中相對應位置元素取大值
: 於是我寫了以下
: for i in range(2):
: for j in range(29):
: def D(i,j):
: if (B[i][j]<C[i][j]):
: return C[i][j]
: else:
: return B[i][j]
: 但是問題來了........怎麼把D(i,j)變成D[i][j]啊@@
: 怎麼寫都出現語法錯誤XDDDDDD
: 小弟在此先感謝各位大德XD
你的寫法
import numpy as np
B = np.random.random([3,30])
C = np.random.random([3,30])
D = np.zeros([3,30])
for i in range(3):
for j in range(30):
if (B[i][j]<C[i][j]):
D[i][j]=C[i][j]
else:
D[i][j]=B[i][j]
另外一種
import numpy as np
B = np.random.random([3,30])
C = np.random.random([3,30])
B[B < C]=0
C[B != 0] =0
D = B+C
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.65.79
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1538728018.A.20A.html
→ sssh: !!原來重新定義一個D矩陣再代換數字!!我倒沒想到這個 10/05 17:01
→ sssh: 感謝感謝! 10/05 17:01
推 iphone2003: 第二種可能會有一點小bug哦,假設B某個位子的值是0,C 10/05 17:06
→ iphone2003: 是-5,這樣結果會是-5,但應該要是0才對 10/05 17:06
推 iphone2003: 改成c[c<=b]=0應該就沒問題了 10/05 17:12
→ tiefblau: 都用numpy了搞成這樣是在想什麼... np.maximum(B,C) 10/05 17:49
推 sssh: 哈哈哈哈哈 啊老蘇沒教啊XD 我就只能用我手上有的工具XDDD 10/05 23:09
→ yougigun: 哈 numpy 有很多被包起來好用的語法 但沒看過就是拿不出 10/07 17:36
→ yougigun: 來用 10/07 17:36